javascript - Variabilele serviciului Angularjs în toate șabloanele controller-ului
Sunt foarte nou în Angularjs.
Am creat un serviciu Angularjs pentru a stoca câțiva variabili „globali”. Arată astfel:
.factory('authVars', function() {
var sdo = {
baseBackendUrl: 'https://www.myurl.com',
user: '',
password: '',
token: '',
isLogged: false
};
return sdo;
})
Acum vreau să folosesc ng-show/hide în diferite controllere.
<div class="alert" ng-hide="authVars.isLogged">
<strong>whatEver</strong>
</div>
Este chiar posibil acest lucru? Sau este mai bine să stochez asta în rootScope?
Pentru puțin ajutor aș fi foarte recunoscător ;-) mulțumesc
Răspuns #1
Doar înregistrează fabrica ta la fiecare controler. Acesta este un serviciu de scop pentru reutilizarea codului. Serviciul este ca un utilitar, îl scrii o dată și îl poți folosi în mai multe controlere
JS
myApp.factory('authVars', function() {
var sdo = {
baseBackendUrl: 'https://www.myurl.com',
user: '',
password: '',
token: '',
isLogged: false
};
return {
getSdo: function() {
return sdo;
}
};
})
function MyCtrl($scope, authVars) {
$scope.authVars = authVars.getSdo();
}
Demo Fiddle
Răspunsul #2
Este 100% în regulă să îl pui în serviciu! Doar să nu uiți să-l injectezi în controllerele relevante:
var Ctrl = function($scope,authVars){
$scope.authVars = authVars;
}
Exemplu: http://jsfiddle.net/cherniv/pzFrs/2/
