モジュールの cofing メソッドに依存関係を注入する方法について読みました。このようなサービスのプロバイダーを作成しました
app.provider("securitySvc", function securitySvcProvider () {
this.$get = ['Authorizations', '$q', 'routeSvc', function securitySvcFactory (Authorizations, $q, routeSvc) {
return new securityService(Authorizations, $q, routeSvc);
}];
});
それを使用しようとすると、新しくなった securityService の代わりに $get メソッドでインスタンスを取得します。私は何を間違っていますか?
app.config( ['$routeProvider', 'routes', 'securitySvcProvider', routeConfigurator]);
function routeConfigurator($routeProvider, routes, securitySvc) {
// HERE securitySvc is instance with a $get method, not newed up securitySvc
}
それ以外のコントローラーでは、securitySvc が正しく挿入されていることに注意してください。
ただし、モジュールの「run」メソッドを以下のようにすると
app.run(function ($rootScope, securitySvc) {
$rootScope.hasPermission = function (authorizationName) {
return securitySvc.hasAuthorization(authorizationName);
};
}
次に、routeConfiguration でそれを参照すると、正常$rootScope.hasPermission
に動作します。私の目標は、スコープの使用を避け、サービスのみを使用することでした。それはできますか?