在 AngularJS 路由中使用常量

Using constants in AngularJS routing

我试图在路由中使用常量来处理每个控制器的 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

谁能帮帮我?谢谢!

试试这个:

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

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