所有控制器模板中的Angularjs服务变量

chr*_*ris 6 javascript angularjs angularjs-scope


我是Angularjs的新手.
我创建了一个Angularjs服务来存储一些"全局"变量.它看起来像这样:

.factory('authVars', function() {
    var sdo = {
        baseBackendUrl: 'https://www.myurl.com',
        user: '',
        password: '',
        token: '',
        isLogged: false
    };
   return sdo;
})
Run Code Online (Sandbox Code Playgroud)

现在我想在不同的控制器中使用ng-show/hide.

<div class="alert" ng-hide="authVars.isLogged">
    <strong>whatEver</strong>
</div>
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?或者将它存储在rootScope中更好?
为了一点帮助,我将非常感激;-) thx

Max*_*tin 2

只需将您的工厂注册到每个控制器即可。这是代码重用的目标服务。服务就像实用程序,您编写一次就可以在许多控制器中使用它

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();
}
Run Code Online (Sandbox Code Playgroud)

演示Fiddle