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/