0
ログインルートでカスタム認証メソッドを呼び出した後、アクションはは、アプリケーションレベル(ApplicationRouteMixin)でトリガされsessionAuthenticated。プリロード・データは、グローバル
はすなわち:私は余分なデータをプリロードしたい場合、これは、しかし、作品
sessionAuthenticated() {
this._super(...arguments);
let _this = this;
return this_loadUser().catch(function() {
_this.get('session').invalidate();
});
}
、はすべての約束が解決されるまで待機しないをsessionAuthenticated。 beforeModelとafterModelフックがすでにアプリケーションルートレベルにあったため、確実に動作する唯一の方法は、セッションがアクティブ(ログイン中)のページを更新してbeforeModelフックとafterModelフックを呼び出すときです。
要するに、ログインルートで認証を呼び出した後、sessionAuthenticatedアクションがアプリケーションルートで起動されますが、アプリケーションルートレベルでグローバルに事前にロードする必要がある余分なデータを持つが発生します。 sessionAuthenticatedは、すべての約束が解決されるまで待機しません。
注:答えは正しいですが、Emberは非同期ブロックでsuperを呼び出すことをサポートしていないため、superへの呼び出しは動作しません。