1
私のAngularJS
アプリケーションでは、コントローラや他のサービスから呼び出すことなく、工場出荷時のサービスを初期化したいと考えています。これはどうすればできますか?AngularJS - 呼び出さずにサービスを初期化する
なぜなら、サービスがアプリケーションの読み込み時にその関数の1つを呼び出さなければならないからです。
私のAngularJS
アプリケーションでは、コントローラや他のサービスから呼び出すことなく、工場出荷時のサービスを初期化したいと考えています。これはどうすればできますか?AngularJS - 呼び出さずにサービスを初期化する
なぜなら、サービスがアプリケーションの読み込み時にその関数の1つを呼び出さなければならないからです。
angular.module(...).run(...)
機能でサービスを注入できます。 次に、サービスのメイン関数/コンストラクタに必要なコードを追加できます。
しかし、それを使用せずにサービスを注入するのは悪い習慣です。なぜなら、あなたや誰かが、なぜそれが注射されたのかわからなくてもそれを取り除くことができるからです。
私にとって最良の方法は、.run
関数にサービスを注入し、サービスから公開するyourService.init()
メソッドを呼び出すことです。 それはもっと明白です。
app.run(['yourService', function(yourService) {
yourService.init();
}]);
サービスのブートストラップ関数 'run'を使用して、サービスとそのメソッドをいつでもロードできます。 – AranS
私は自分の質問を更新しました。間違った方法で説明したかもしれないと思います。 –
@AranSによると、角モジュールの実行フェーズでserviceメソッドを呼び出すことができます。ウェブ解析でも同じことをしています – user3045179