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/