angular .config中的自定义提供程序

时间:2014-08-31 17:28:12

标签: javascript angularjs

我看到了一些如何将自定义提供程序插入到角色.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

1 个答案:

答案 0 :(得分:1)

发现我的问题。我没有将Provider附加到提供者名称。在这种情况下,它看起来像accessProviderProvider