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