2

私は Angular のドキュメントを読んでい$routeProviderますが、パラメーターには次のように書かれています:

resolve- {Object.=} - コントローラーに注入する必要がある依存関係のオプションのマップ。これらの依存関係のいずれかが promise である場合、ルーターは、コントローラーがインスタンス化される前に、それらがすべて解決されるか、1 つが拒否されるのを待ちます。すべてのプロミスが正常に解決された場合、解決されたプロミスの値が注入され、$routeChangeSuccess イベントが発生します。promise のいずれかが拒否された場合、 $routeChangeErrorイベントが発生します。マップ オブジェクトは次のとおりです。

key– {string}: コントローラーに注入される依存関係の名前。factory - {string|function}: 文字列の場合、サービスのエイリアスです。それ以外の場合は、関数が注入され、戻り値が依存関係として扱われます。結果が promise である場合、その値がコントローラーに注入される前に解決されます。ngRoute.$routeParams は、これらの解決関数内の以前のルートを引き続き参照することに注意してください。代わりに、$route.current.params を使用して、新しいルート パラメーターにアクセスします。

whenの代わりにresolverouteProvider を使用する方法はありますか?routeChangeStartrouteChangeSuccess

私の理由を説明するには、すべてのアプリの構成パラメーターを設定していて、できるだけ早くそれらにアクセスできるようにしたいので、routeChangeStart で解決を実行したいと思います。ChangeSuccess は後のステップです。

私のコードは実際にはとても単純です:

$routeProvider
.when('/',{
   templateUrl:'amagic_template.html',
   controller:'Ctrl',
   resolve: {
    load: function (configFactory) {
      return configFactory.load(); // promises in here 
    } 
   }
});
4

0 に答える 0