我正在爲應用程序的身份驗證部分構建提供程序。我在使用依賴注入器時將值傳遞給函數時遇到了麻煩。AngularJS函數DI參數
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')
}
})
但它給了我
Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to: TypeError: object is not a function
UPDATE
app.config(function($routeProvider, $httpProvider, securityAuthorization) {
$routeProvider
.when('/map', { controller: 'MapCtrl', templateUrl: 'partials/user/map.html',
resolve: {
authenticatedUser: ['securityAuthorization', function(){
return securityAuthorization.requireRole('user');
}]
}
});
});
錯誤:
Error: [$injector:unpr] Unknown provider: securityAuthorization
刪除'securityAuthorization'在'config',它不再需要在那裏。 – TheSharpieOne 2014-10-06 19:26:18
如果我刪除它,那麼我得到ReferenceError:securityAuthorization沒有被定義 – 2014-10-06 19:45:16
'authenticatedUser:['securityAuthorization',function(securityAuthorization){ return securityAuthorization.requireRole('user'); }]' – TheSharpieOne 2014-10-06 20:11:17