在AngularJS路由中使用常量

时间:2015-03-10 12:14:04

标签: javascript angularjs angular-ui-router

我正在尝试在路由中使用常量来处理每个控制器的ACL。但是在config中,常量不可用,注入似乎被打破了。但是,我可以从应用程序中的其他任何位置访问该值。

var app = angular.module('myproject', [
    'ui.router'
]);

app.constant('USER_ROLES', {
    all: '*',
    admin: 'admin',
    role1: 'role1',
    role2: 'role2'
});

app.config(['$stateProvider', '$urlRouterProvider',
    function ($stateProvider, $urlRouterProvider, USER_ROLES) {
      console.log("Value: ", USER_ROLES);
});

此代码将此输出生成到控制台中:

Value: undefined

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个:

app.config(['$stateProvider', '$urlRouterProvider', 'USER_ROLES', // <-- you forgot this
    function ($stateProvider, $urlRouterProvider, USER_ROLES) {
      console.log("Value: ", USER_ROLES);
}]);

您正在注入USER_ROLES,但您没有将其添加到数组表示法中的依赖项。你也错过了结束]