簡體   English   中英

在ember-simple-auth身份驗證后觸發向“加載”路由的轉換

[英]Trigger transition to 'loading' route after ember-simple-auth authentication

我想向登錄到我的應用程序的用戶顯示“正在加載...”動畫。

如果模型返回了承諾,Ember會自動過渡到“加載”路線(如果有),因此它有機會顯示“加載”模板,直到服務器響應為止。

現在,我有了一個登錄表單,其中Submit觸發了我的控制器中的“身份驗證”操作(在LoginControllerMixin中定義)。 灰燼似乎沒有將其視為應許,因此應用程序不會過渡到“加載”路線。

也許有一種方法可以使用簡單身份驗證會話狀態,但是我無法弄清楚

任何幫助,將不勝感激

這並不是說它不是一個承諾,而是它不是過渡的一部分。 如果要修改身份驗證混合,則可以手動將其轉換為加載路由,然后開始promise,然后轉換為目標后身份驗證。 老實說,如果這樣做值得的話,我會感到驚訝,除非您的后端認證速度真的很慢。

您將身份驗證邏輯更改為以下內容:

this.transitionTo('loading').then(function(){      
  authenticateLogicCall().then(function(){
    this.transitionTo('authenticatedResource');
  });
});

我認為加載路由僅在發生過渡且框架正在等待目標路由的model鈎返回的promise解析時才能很好地工作。 但是,Ember Simple Auth的LoginControllerMixin的authenticate操作不是這種情況。 要顯示加載消息,您可以通過以下方法簡單地覆蓋該authentication操作:

export default Ember.Controller.extend(LoginControllerMixin, { actions: { authenticate: function() { var _this = this; this.set('loading', true); this._super().then(function() { _this.set('loading', false); }, function() { _this.set('loading', false); }); } } });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM