2017-07-10 89 views
0

時,當我刷新我燼應用程序的索引頁面,看來我不能調用函數我index.js內文件位於應用程序/路由燼:發行刷新索引頁

我真的不知道我該如何解決這個問題。

index.js的源代碼:

import Ember from 'ember'; 
 
import ProjectRoute from 'web/project-route'; 
 

 
export default ProjectRoute.extend({ 
 
    authSrv: Ember.inject.service('authentication'), 
 
    _title: 'index.title', 
 
    _requireAuth: true, 
 
    beforeModel() 
 
    { 
 
     "use strict"; 
 
     this._super(); 
 
    }, 
 
    model() 
 
    { 
 
     "use strict"; 
 
     console.log(this.get('authSrv').username); 
 
     return {user_id: this.get('authSrv').user_id, 
 
      username: this.get('authSrv').username}; 
 
    } 
 
});

在源代碼上面我們可以看到,我試圖顯示的用戶名。當我第一次登錄到這個頁面時,它顯示的很好,但當我刷新頁面時,它不顯示任何內容。
任何想法都歡迎!

+0

當您刷新頁面,你失去所有的本地狀態(客戶端)。身份驗證很可能會在會話cookie中捕獲,因此您在刷新後仍保持身份驗證狀態,但身份驗證過程中存儲的任何客戶端數據都將丟失。 –

+0

'不顯示任何東西'通常意味着控制檯中有某種信息。 –

+0

我認爲問題來自不是最新的模塊。我會及時通知你的。 – maje

回答

0

所以我用Ember模塊RSVP修復了它。基本上,主要問題是來自承諾。我沒有等待承諾。 index.js看起來像這樣知道。

import Ember from 'ember'; 
 
import ProjectRoute from 'web/project-route'; 
 

 
export default ProjectRoute.extend({ 
 
    authSrv: Ember.inject.service('authentication'), 
 
    _title: 'index.title', 
 
    _requireAuth: true, 
 
    beforeModel() 
 
    { 
 
     "use strict"; 
 
     this._super(); 
 
    }, 
 
    model() 
 
    { 
 
     "use strict"; 
 
     let promise = new Ember.RSVP.Promise((resolve, reject) => 
 
     { 
 
      this.get('authSrv').get('current_auth').promise.then((res) => 
 
      { 
 
       resolve({user_id: this.get('authSrv').user_id, 
 
        username: this.get('authSrv').username}); 
 
      }); 
 
     }); 
 
     return promise; 
 
    } 
 
});