强制在Ember Cli中获取RSVP哈希中的所有数据

时间:2014-07-24 13:17:51

标签: ember.js ember-data ember-cli

Ember Cli不能像Ember通常应该做的那样使用关系数据(relateTo和hasMany)。为了使其工作,我使用RSVP哈希并手动在控制器中设置模型。

export default Ember.Route.extend({

  model: function(params) {
    return Em.RSVP.hash({
      traits: this.store.find('trait'),
      person: this.store.find('person', params.person_id)
    });
  },

  setupController: function(controller, model) {
    controller.set('model', model.person);
  }
});

这会使具有给定ID及其特征的人获得。在这种情况下,由于人员只分配了两个特征,因此只返回这两个数据对象。

让我们说在这条路线上,我想让用户能够改变这个人的特征。所以,我想用复选框显示所有特征。如何在上面的路线中强制要求获得所有特征,而不仅仅是两个?

我尝试了store.all(),但只过滤了本地数据。由于还没有数据,它返回0个对象。

1 个答案:

答案 0 :(得分:3)

Ember-cli只是帮助您设置项目结构并构建它。它没有任何不同的Ember运行。如果您想要模板或控制器中的所有特征,您应该在获取它们之后实际跟踪它们。

export default Ember.Route.extend({

  model: function(params) {
    return Em.RSVP.hash({
      traits: this.store.find('trait'),
      person: this.store.find('person', params.person_id)
    });
  },

  setupController: function(controller, model) {
    controller.set('model', model.person);
    controller.set('allTraits', model.traits);
  }
});