2015-03-10 3 views
1

Я пытаюсь использовать константы в моей маршрутизации для обработки ACL каждого контроллера. Но в config константы не доступны, и инъекция кажется сломанной. Тем не менее, я могу получить доступ к значению со всего мира в приложении.Использование констант в маршрутизации AngularJS

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

Может кто-нибудь мне помочь? Благодаря!

+0

Вам не хватает ']' где-то – devqon

+0

Я считаю, что константы устанавливаются после выполнения, поэтому, когда приложение находится в конфигурации, константы еще не установлены. я не уверен в этом, но я считаю, что они доступны после того, как ваша платформа готова. –

+0

Спасибо @devqon Я только что заметил это, я обрезал свой фрагмент, чтобы было легче понять. –

ответ

2

Попробуйте это:

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

Вы были инъекции USER_ROLES, но вы не добавить его к зависимостям в обозначениях массива. Также вам не хватало закрытия ]

+0

Это была первая часть вашего ответа, которая решила мою проблему, спасибо @devqon! –

Смежные вопросы