2016-05-30 13 views
1

私のAngularJSアプリケーションでは、コントローラや他のサービスから呼び出すことなく、工場出荷時のサービスを初期化したいと考えています。これはどうすればできますか?AngularJS - 呼び出さずにサービスを初期化する

なぜなら、サービスがアプリケーションの読み込み時にその関数の1つを呼び出さなければならないからです。

+1

サービスのブートストラップ関数 'run'を使用して、サービスとそのメソッドをいつでもロードできます。 – AranS

+0

私は自分の質問を更新しました。間違った方法で説明したかもしれないと思います。 –

+1

@AranSによると、角モジュールの実行フェーズでserviceメソッドを呼び出すことができます。ウェブ解析でも同じことをしています – user3045179

答えて

2

angular.module(...).run(...)機能でサービスを注入できます。 次に、サービスのメイン関数/コンストラクタに必要なコードを追加できます。

しかし、それを使用せずにサービスを注入するのは悪い習慣です。なぜなら、あなたや誰かが、なぜそれが注射されたのかわからなくてもそれを取り除くことができるからです。

私にとって最良の方法は、.run関数にサービスを注入し、サービスから公開するyourService.init()メソッドを呼び出すことです。 それはもっと明白です。

app.run(['yourService', function(yourService) { 
    yourService.init(); 
}]); 
関連する問題