0

モジュールの 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に動作します。私の目標は、スコープの使用を避け、サービスのみを使用することでした。それはできますか?

4

1 に答える 1