javascript - Angularjs varijable servisa u svim predlošcima kontrolera
Ja sam vrlo nov u Angularjs-u.
Stvorio sam Angularjs servis za pohranu nekoliko "globalnih" varijabli. Izgleda ovako:
.factory('authVars', function() {
var sdo = {
baseBackendUrl: 'https://www.myurl.com',
user: '',
password: '',
token: '',
isLogged: false
};
return sdo;
})
Sada želim koristiti ng-show/hide u različitim kontrolerima.
<div class="alert" ng-hide="authVars.isLogged">
<strong>whatEver</strong>
</div>
Je li ovo uopće moguće? Ili je bolje pohraniti ovo u rootScope?
Bio bih vrlo zahvalan na malo pomoći ;-) hvala
Odgovor #1
Samo registrirajte svoju tvornicu u svaki kontroler. Ovo je servisa za ciljanje ponovne upotrebe koda. Servis je poput pomoćnog programa, napišete ga jednom i možete ga koristiti u mnogim kontrolerima
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
Odgovor #2
Potpuno je u redu staviti ga u servis! Samo ne zaboravite ubrizgati ga u odgovarajuće kontrolere:
var Ctrl = function($scope,authVars){
$scope.authVars = authVars;
}
Primjer: http://jsfiddle.net/cherniv/pzFrs/2/
