ember 从会话中获取当前用户信息并将 currentUser 设置为在模板内部使用
ember get current user information from session and setting currentUser to use inside template
我正在使用 ember-simple-auth 库,在后端使用 rails 基于令牌的身份验证。
ember 版本是:
ember-cli: 2.6.2
node: 6.3.0
ember-simple-auth: 1.1.0
我成功登录了一个用户。但无法访问当前用户信息。以下代码有效:
{{#if session.isAuthenticated}}
<p>i m logged in</p>
<a href="#" {{action 'logout'}}>Logout</a>
{{else}}
<p>i m not logged in</p>
{{/if}}
但是下面的代码不起作用
{{session.store.authenticated.email}}
我想获取用户信息但是失败了。所以,我深入研究并使用 ember 助手作为:
<p>{{log session}}</p>
它帮助了我,我能够获取当前用户信息,例如:
<p>{{session.session.content.authenticated.email}}</p>
很好,但我想要如下内容:
<p>{{session.currentUser.email}}</p>
或简单地:
<p>{{currentUser.email}}</p>
如何更改我的应用程序控制器,以便它能够以更好的方式获取当前用户信息。我的应用程序控制器代码是:
// /app/controllers/application.js
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
actions: {
logout() {
this.flash.success('Successfully logged out!', 5000);
this.get('session').invalidate();
}
}
});
您的会话数据在会话对象数据中可用 属性。
查看 docs 中的 "authenticate" 方法了解更多信息。
因此您可以访问它,即 {{session.data.authenticated.email}}
。根据您的会话数据,您可以在控制器中计算 属性,这样它在您的模板中看起来更好...
currentUser: Ember.computed('session.data', function() {
return this.get('session.data.authenticated.currentUser');
})
我正在使用 ember-simple-auth 库,在后端使用 rails 基于令牌的身份验证。 ember 版本是:
ember-cli: 2.6.2
node: 6.3.0
ember-simple-auth: 1.1.0
我成功登录了一个用户。但无法访问当前用户信息。以下代码有效:
{{#if session.isAuthenticated}}
<p>i m logged in</p>
<a href="#" {{action 'logout'}}>Logout</a>
{{else}}
<p>i m not logged in</p>
{{/if}}
但是下面的代码不起作用
{{session.store.authenticated.email}}
我想获取用户信息但是失败了。所以,我深入研究并使用 ember 助手作为:
<p>{{log session}}</p>
它帮助了我,我能够获取当前用户信息,例如:
<p>{{session.session.content.authenticated.email}}</p>
很好,但我想要如下内容:
<p>{{session.currentUser.email}}</p>
或简单地:
<p>{{currentUser.email}}</p>
如何更改我的应用程序控制器,以便它能够以更好的方式获取当前用户信息。我的应用程序控制器代码是:
// /app/controllers/application.js
import Ember from 'ember';
export default Ember.Controller.extend({
session: Ember.inject.service('session'),
actions: {
logout() {
this.flash.success('Successfully logged out!', 5000);
this.get('session').invalidate();
}
}
});
您的会话数据在会话对象数据中可用 属性。 查看 docs 中的 "authenticate" 方法了解更多信息。
因此您可以访问它,即 {{session.data.authenticated.email}}
。根据您的会话数据,您可以在控制器中计算 属性,这样它在您的模板中看起来更好...
currentUser: Ember.computed('session.data', function() {
return this.get('session.data.authenticated.currentUser');
})