ember.js - 如何访问 Ember Controller 中的模型数据

标签 ember.js model controller ember-data

我主要是 Ember 的新手。 我想访问 Controller 中的模型数据。 我正在使用 Ember.RSVP.hash 在我的 route 加载多个模型。

我的路线

 model(params) {
   this.set('id', params.userID);
   return Ember.RSVP.hash({
     dashboards: this.store.findAll('dashboard', params)
      .then((dashboards) => dashboards.toArray()),
     user: this.store.find('user', params.userID)
    })
  },
  setupController(controller, model) {
    controller.setProperties(model);
  },

用户模型

export default DS.Model.extend({
  userID: DS.attr('string'),
  email: DS.attr('string'),
  name: DS.attr('string'),
  picture: DS.attr('string'),
  active: DS.attr('boolean'),
  permissions: DS.attr(),
  created: DS.attr('utc'),
  password: DS.attr('string')
});

然后我尝试访问用户模型参数之一。在我的 Controller 中,我创建了 init 函数,并尝试访问用户模型参数。我写的:

  init() {
    console.log(this.get('user.name'));
  },

之后我得到了未定义。 这样做的正确方法是什么?

最佳答案

在 Controller 上使用 this.get('model') 来访问整个模型数据。您还可以使用Ember.get(this, 'model.user.name');。您可以使用类似以下内容:查看 the actions .

但是 init 是一个急切的钩子(Hook)! model 属性尚未在 init Hook 处设置!

关于ember.js - 如何访问 Ember Controller 中的模型数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43841818/

相关文章:

javascript - 使用 JavaScript (Ember.js) 将 TMDb 中的流派 ID 与流派名称进行匹配

JavaScript:先按数字然后按字母对数组字符串进行排序

ember.js - 用于嵌套路由但非嵌套模板的惯用 Emberjs

c# - 如何在 Razor View 中将@model 指令更改为不同的模型?

model - 如何使用这个 smoreg 模型手动预测 future 价格?

ruby-on-rails - 如何使方法出现在所有 Controller 操作之前

Controller 中的 JavaFX 2 窗口事件处理

node.js - 如何在 Node.js 服务器上缓存 AWS S3 文件并根据请求提供服务?

mysql - 如何根据多个关联模型查询一个模型

c# - 将数据从 View 传递到 Controller