在应用初始化之前设置AngularJS Global

时间:2018-06-22 17:49:53

标签: angularjs angular-ui-router

我目前正在AngularJS代码库中工作,该代码根据每个toggle上附加的一些customer元素来触发不同的路由。在我的应用中,当我使用同一变量进行分支时,需要在app.js文件中两次路由到不同的位置,一次是在控制器中管理状态,另一次是在控制器中。

我尝试结合使用手动引导和run方法,但没有成功。

var app = angular
    .module('app', ['customer'])
    .run(function (customer) {
        angular.element(document).ready(function () {
            customer.myMethod().then(function (enabled) {
                enabled = enabled;
                angular.bootstrap(document, ['app']);
            });
        });
    });

$stateProvider
    .state('home', {
        url: enabled ? '/' : '/customer',
        templateUrl: 'views/home.html',
        controller: 'HomeCtrl',
        data: {
            title: 'Home'
        }
    })

然后在我的控制器中,例如,在我的init方法中使用相同的变量:

$scope.init = function () {
    if (enabled) { ... }
    else { ... }
}

$scope.init();

我注意到enabled变量最终被设置了,但是它在状态确定后发生。有没有一种方法可以在我的AngularJS应用启动之前设置全局变量,以便在任何地方使用它?

谢谢

0 个答案:

没有答案