Я создаю поставщика для части аутентификации приложения. У меня возникают проблемы с передачей значений функции при использовании инжектора зависимостей.Функция 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);
}
};
}]
});
Я пытаюсь вызвать «requireRole» из app.config $ routeProvider.
.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' из вашего DI в вашем' config', он больше не нужен. – TheSharpieOne
если я его удалю, то я получаю ReferenceError: securityAuthorization не определен –
'authenticatedUser: ['securityAuthorization', function (securityAuthorization) { return securityAuthorization.requireRole ('user'); }] ' – TheSharpieOne