【发布时间】:2015-08-20 08:56:21
【问题描述】:
当我想在模型中使用会话数据(分配给用户的公司 ID)时,我遇到了 ember 问题。我正在使用带有 ember-simple-auth 的 ember-cli 和 ember 0.13.1。假设当我想显示有关用户被分配到的公司的信息时,我有一个名为 user/profile 的路由。为此,我需要从会话中检索分配给用户的 companyId,并使用模型调用我的 API。目前用户/个人资料的路线如下所示:
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function() {
return Ember.RSVP.hash({
industries: this.store.findAll('industry'),
industryroles: this.store.findAll('industryrole'),
company: this.store.find('company',this.session.get('user.companyId'))
});
},
setupController: function(controller, model) {
controller.set('industries', model.industries);
controller.set('industryroles', model.industryroles);
controller.set('company', model.company);
}
});
当您从不同的路线前往该路线时,一切正常,但是当您处于用户/个人资料路线并按 F5 时,this.session.get('user.companyId') 未定义。
有人知道我该如何解决这个问题吗?
最好的问候 帕维尔
【问题讨论】:
-
如果用户只能访问他们的公司,您可以在后端解决这个问题:确定用户在请求信息并返回他们的公司。
-
感谢您的回答,但我不想在后端执行此操作,因为我在其他路由中也使用相同的请求。我想知道是否应该将会话注入模型,但我在 simple-auth 论坛中发现这不是建议的方法。另一件事是我用一个承诺注册了一个用户,这意味着来自用户/配置文件路由的模型将在该承诺解决后执行。
标签: session ember.js model ember-simple-auth ember-model