私は Angular のドキュメントを読んでい$routeProvider
ますが、パラメーターには次のように書かれています:
resolve
- {Object.=} - コントローラーに注入する必要がある依存関係のオプションのマップ。これらの依存関係のいずれかが promise である場合、ルーターは、コントローラーがインスタンス化される前に、それらがすべて解決されるか、1 つが拒否されるのを待ちます。すべてのプロミスが正常に解決された場合、解決されたプロミスの値が注入され、$routeChangeSuccess イベントが発生します。promise のいずれかが拒否された場合、$routeChangeError
イベントが発生します。マップ オブジェクトは次のとおりです。
key
– {string}: コントローラーに注入される依存関係の名前。factory - {string|function}: 文字列の場合、サービスのエイリアスです。それ以外の場合は、関数が注入され、戻り値が依存関係として扱われます。結果が promise である場合、その値がコントローラーに注入される前に解決されます。ngRoute.$routeParams は、これらの解決関数内の以前のルートを引き続き参照することに注意してください。代わりに、$route.current.params を使用して、新しいルート パラメーターにアクセスします。
whenの代わりにresolve
routeProvider を使用する方法はありますか?routeChangeStart
routeChangeSuccess
私の理由を説明するには、すべてのアプリの構成パラメーターを設定していて、できるだけ早くそれらにアクセスできるようにしたいので、routeChangeStart で解決を実行したいと思います。ChangeSuccess は後のステップです。
私のコードは実際にはとても単純です:
$routeProvider
.when('/',{
templateUrl:'amagic_template.html',
controller:'Ctrl',
resolve: {
load: function (configFactory) {
return configFactory.load(); // promises in here
}
}
});