AngularJSの.config
関数と.run
関数の違いを見つけたいと思いました。ルートのセットアップに.config
を使用していましたが、ルート変更の開始イベントと成功イベントを監視するために$on
を使用していました。
.run
で依存性注入の問題が発生したため、このコードの一部を.config
に移動しました。
私はついに、このいくつかをCommonAppController
に移動し、<body>
に設定しました。
また、2つの.config
があり、正常に実行されているように見えましたが、これは間違いです。
誰がどの方法を使用するかについて少し洞察を与えることができますか?
構成ブロックと実行ブロックは、アプリケーションブートストラップのさまざまなポイントで実行され、さまざまなインジェクションローカルを自由に使用できます。 AngularJSドキュメンテーション で見つけることができるものの概要を以下に示します。
構成ブロック(module.config()
で登録)はプロバイダーの登録中に実行され、プロバイダーと定数にのみ挿入できます(module.provider()
およびmodule.constant()
を参照)。通常、これは_$routeProvider
_などのアプリケーション全体のものを構成する場所です。サービスを作成する前に構成する必要があるもの。
実行ブロック(module.run()
で登録)は、インジェクターがすべてのプロバイダーを取得した後に実行されます。これで、すべてのインスタンスと定数を注入できます。これは通常、サービス、_$rootScope
_、イベントなどを構成する場所です。
いずれかを複数持つことができ、それらはモジュールに登録された順序で実行されます。たとえば、コントローラーのすべてのグループの前に構成ブロックを登録して、これらのコントローラーへのルートを登録することを好む人もいます。