2016-03-30 8 views
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への呼び出しは動作しません。

答えて

関連する問題