1

カスタムサービスを ng モジュールに直接追加しようとしました

'use strict';
angular
    .module("ng")
    .service('getAQueryParameterByName', ['', function(){
        console.log("getAQueryParameterByName service active");
        this.getParameter = function(name){
            console.log("getParameter!");
        }
    }]);

その結果、サービスを実行しようとすると、次のgetAQueryParameterByName.getParameter(var)エラーが発生しました

ReferenceError: getAQueryParameterByName is not defined

通常、このエラーはサービスを注入しなかったことが原因で発生しますが、モジュールにカスタム サービスを直接注入するため、コントローラーに再度注入する必要はないと思います。しかし、とにかくサービスをコントローラーに再度追加しようとすると、エラーが発生しました

 Error: [$injector:unpr] Unknown provider: Provider <-  <- getAQueryParameterByName

私はこの時点で本当に混乱しています...どこが間違っていましたか?

4

1 に答える 1

1

定義を次のように変更します。

'use strict';
angular
    .module("ng")
    .service('getAQueryParameterByName', [function(){
        console.log("getAQueryParameterByName service active");
        this.getParameter = function(name){
            console.log("getParameter!");
        }
    }]);

ただし、ng モジュールを拡張することはお勧めしません。これは、モジュラー アーキテクチャに関する限り、サード パーティと見なす必要があります。

于 2015-03-02T17:26:42.590 に答える