javascript - Angularjs service variabler i alle controller skabeloner
Jeg er helt ny til Angularjs.
Jeg har oprettet en Angularjs-service til at gemme nogle "globale" variabler. Det ser sådan ud:
.factory('authVars', function() {
var sdo = {
baseBackendUrl: 'https://www.myurl.com',
user: '',
password: '',
token: '',
isLogged: false
};
return sdo;
})
Nu vil jeg bruge ng-show/hide i forskellige controllere.
<div class="alert" ng-hide="authVars.isLogged">
<strong>whatEver</strong>
</div>
Er dette overhovedet muligt? Eller er det bedre at gemme dette i rootScope?
Jeg ville være meget taknemmelig for lidt hjælp ;-) tak
Svar #1
Registrer blot din fabriksmetode til hver controller. Dette er en målservice til genbrug af kode. Service er som en hjælpefunktion, du skriver den én gang og kan bruge den i mange controllere
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
Svar #2
Det er 100% i orden at sætte det i brug! Glem bare ikke at injicere det i relevante controllere:
var Ctrl = function($scope,authVars){
$scope.authVars = authVars;
}
Eksempel: http://jsfiddle.net/cherniv/pzFrs/2/
