Ember.js -- 如何从路由访问 Ember 会话中的数据
Ember.js -- how to access data in Ember session from route
使用 ember-simple-auth 我设置了一个会话并将 currentUser 密钥设置为等于从服务器返回的用户对象(edit:整个内容session.js 文件):
//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
尝试
this.get('session.data.currentUser')
使用 ember-simple-auth 我设置了一个会话并将 currentUser 密钥设置为等于从服务器返回的用户对象(edit:整个内容session.js 文件):
//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
尝试
this.get('session.data.currentUser')