2016-03-29 50 views
2

使用ember-simple-auth我設置了一個會話並將currentUser鍵設置爲等於從服務器返回的用戶對象(編輯:內容全部session.js文件):Ember.js - 如何訪問路線中的Ember會話中的數據

//app/services/session.js 

import Ember from 'ember'; 
import ESASession from "ember-simple-auth/services/session"; 

export default ESASession.extend({ 

    store: Ember.inject.service(), 
    session: Ember.inject.service(), 


    setCurrentUser: function() { 
    if (this.get('isAuthenticated')) { 
     const accountId = this.get('session.content.authenticated.user_id'); 
     console.log(accountId); 
     this.get('store').findRecord('user', accountId).then(user => { 
      this.set('currentUser', user); 
     }); 
    } 
    }.observes('isAuthenticated') 
}); 

問題是,當我試圖從一個路由訪問「currentUser」鍵對數據關係:

user: Ember.computed(function(){ 
    console.log(this.get('session')); 
    //return `${this.get('session.currentUser')}`; 
    }), 

在我看到(除了控制檯一堆其他的東西):

currentUser: Class 

但如果我嘗試記錄'session.currentUser'我看到未定義。

如何從這條路線訪問用戶ID?遇到很多麻煩!在此先感謝:d

+0

你注入會話服務到'setCurrentUser'觀察者上定義的類? – marcoow

+0

@marcoow感謝您的評論,我沒有注入會話!但現在我的問題仍然存在。我甚至可以記錄類似'session._super'的東西,並查看正確的結果,但不會檢查'session.currentUser',即使在檢查console.log的輸出時該鍵在控制檯中可見(this.get('session' )。我將用session.js文件的全部內容來更新上面的代碼,以確保我沒有犯任何愚蠢的錯誤,再次感謝 –

回答

3

嘗試

this.get('session.data.currentUser') 
+0

是的,非常感謝,我終於能夠在會話中訪問id .data.authenticated.user_id –

相關問題