web-dev-qa-db-ja.com

$ injector.get()からサービスインスタンスを取得できません

「greeting」という名前のカスタマーサービスを定義しましたが、$ injector.get( 'greeting')からインスタンスを取得できません。それはそのようなエラーをスローします:不明なプロバイダー:GreetingProvider <-グリーティング。それを取得する正しい方法はどれですか?コードは次のとおりです。

var app = angular.module('myDI', []);
app.config(function($provide){
    $provide.provider('greeting', function(){
        this.$get = function(){
             return function(name) {
                 console.log("Hello, " + name);
            };
        };
    });
});

var injector = angular.injector();
var greeting = injector.get('greeting');
greeting('Ford Prefect');
15
jason

モジュールからインジェクターを作成する必要があります。

var app = angular.module('myDI', []);
app.config(function($provide){
    $provide.provider('greeting', function(){
        this.$get = function(){
             return function(name) {
                 console.log("Hello, " + name);
            };
        };
    });
});
var injector = angular.injector(['myDI', 'ng']); //Add this line
var greeting = injector.get('greeting');
greeting('Ford Prefect');
var injector = angular.injector();

ここで試してください。 [〜#〜]フィドル[〜#〜]

26
zs2020