我看到了一些如何将自定义提供程序插入到角色.config
中的示例,但我没有正确地执行此操作。
我有一个提供者:
(function() {
var app = angular.module('application.providers', ['application.services'])
app.provider('accessProvider', function() {
this.$get = ['userServices',
function(userServices) {
var auth = {}
auth.action = function(action, roles) {
auth[action] = angular.copy(roles)
}
auth.action('sell', [...])
auth.can = function(action) {
var userRole = userServices.getRole()
return auth[action].reduce(function(prev, now) {
return prev || (now === userRole)
}, false)
}
return auth
}
]
})
})()
当我在这里定义我的路线时:
(function() {
var app = angular.module('application.configRoutes', ['ngRoute', 'application.providers'])
app.config(['$routeProvider', '$locationProvider', 'accessProvider',
function($routeProvider, $locationProvider, accessProvider) {
...
我收到以下错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module landingPage due to:
Error: [$injector:modulerr] Failed to instantiate module application.configRoutes due to:
Error: [$injector:unpr] Unknown provider: accessProvider
这就是我实例化我的应用的方式:
var app = angular.module('landingPage', [
'application.configRoutes',
'application.directives',
'application.controllers',
'application.translate',
'application.flash',
'application.customInterceptors'
])
然后我在services.js
之前加载存储providers.js
的文件,然后我加载configRoutes.js
。
答案 0 :(得分:1)
发现我的问题。我没有将Provider
附加到提供者名称。在这种情况下,它看起来像accessProviderProvider
。