我读到了如何在模块的 cofing 方法中注入依赖项。我像这样为我的服务创建了提供者
app.provider("securitySvc", function securitySvcProvider () {
this.$get = ['Authorizations', '$q', 'routeSvc', function securitySvcFactory (Authorizations, $q, routeSvc) {
return new securityService(Authorizations, $q, routeSvc);
}];
});
当我尝试使用它时,我使用 $get 方法而不是新的 securityService 来获取实例。我究竟做错了什么?
app.config( ['$routeProvider', 'routes', 'securitySvcProvider', routeConfigurator]);
function routeConfigurator($routeProvider, routes, securitySvc) {
// HERE securitySvc is instance with a $get method, not newed up securitySvc
}
请注意,在其他任何地方,在控制器中,securitySvc 都被正确注入。
但是,如果遵循模块的“运行”方法
app.run(function ($rootScope, securitySvc) {
$rootScope.hasPermission = function (authorizationName) {
return securitySvc.hasAuthorization(authorizationName);
};
}
然后,如果我通过它在 routeConfiguration 中引用它,它就$rootScope.hasPermission
可以正常工作。我的目标是避免使用范围而只使用服务。可以做到吗?