【发布时间】:2014-12-01 02:06:52
【问题描述】:
我正在为应用程序的身份验证部分构建提供程序。使用依赖注入器时,我无法将值传递给函数。
angular.module('security.authorization', ['security.service'])
.provider('securityAuthorization', {
requireRole: ['securityAuthorization', 'rolesAllowed', function(securityAuthorization, rolesAllowed) {
return securityAuthorization.requireRole(rolesAllowed);
}],
$get: ['security', '$q', function(security, $q) {
return {
requireRole: function(rolesAllowed) {
console.log(rolesAllowed);
}
};
}]
});
我正在尝试从 app.config $routeProvider 调用“requireRole”。
.when('/map', { controller: 'MapCtrl', templateUrl: 'partials/user/map.html',
resolve: {
authenticatedUser: securityAuthorizationProvider.requireRole('user')
}
})
但它给了我
未捕获的错误:[$injector:modulerr] 无法实例化模块 myApp 由于:TypeError: object is not a function
更新
app.config(function($routeProvider, $httpProvider, securityAuthorization) {
$routeProvider
.when('/map', { controller: 'MapCtrl', templateUrl: 'partials/user/map.html',
resolve: {
authenticatedUser: ['securityAuthorization', function(){
return securityAuthorization.requireRole('user');
}]
}
});
});
错误:
错误:[$injector:unpr] 未知提供者:securityAuthorization
【问题讨论】:
-
从
config中的 DI 中删除securityAuthorization,那里不再需要它。 -
如果我删除它,然后我得到 ReferenceError: securityAuthorization is not defined
-
authenticatedUser: ['securityAuthorization', function(securityAuthorization){ return securityAuthorization.requireRole('user'); }] -
非常感谢,我为孔问题苦苦挣扎了好几个小时。现在一切正常:)
标签: javascript angularjs dependency-injection