web-dev-qa-db-ja.com

Angular js-解決してrun()の実行順序

この回答のおかげで AngularJS app.run()ドキュメント? モジュールがAngularによって実行される順序を確認できます。私の質問は次のとおりです。

私が持っている場合:

_app.config(function () {
    $routeProvider.when('/', {
        ....
        resolve: {
            // something to resolve
        }
    });
});

app.run(function () {
    // something to run
});
_

RouteProvider _resolve:{}_が解決される前にrun()が実行されますか?

12
itsme

少なくとも私の実験では、はい、解決はapp.runの後に実行されます。

this jsfiddle で、私が取得した呼び出し順序は次のとおりです。

  1. アプリの構成
  2. アプリの実行
  3. ディレクティブの設定
  4. ディレクティブコンパイル
  5. アプリコントローラー
  6. ディレクティブリンク
  7. **データ解決と呼ばれる**
  8. 新しいルートのコントローラー

フィドルでわかるように、resolveに渡されたオブジェクトのプロパティの値としてconsole.log関数を使用してこれを確認しました。

resolve: {
            data: function() {
              console.log('Data resolve called');
            }
         }

コードでこれと同じアプローチを使用して、routeProviderが依存関係のチェックを開始するタイミングをチェックできます。

27
KayakDave