使用父ID而不是子ID获取hasMany关系数据

时间:2014-10-15 12:45:58

标签: javascript ember.js ember-data

我有两种模型的余烬数据。

App.Component = DS.Model.extend({
    componentGroup: DS.belongsTo('componentGroup', {async: true}),
    name: DS.attr('string')
});

App.ComponentGroup = DS.Model.extend({
    components: DS.hasMany('component', {async: true}),
    name: DS.attr('string')
});

我正在获取component_group的列表,然后当我点击其中一个时,我正在尝试获取该组包含的所有组件

ember-data beta 9中的默认行为是为获取该数据创建n + 1个获取请求。如果我设置

coalesceFindRequests: true

参数,请求合并为一个,但仍然使用大量的ID。我需要的是要求API为所有属于component_group的组件提供ID为X,因此休息调用可能看起来像那样

/component_group/X/components

当组件组有很多孩子时,效率会更高。

有可能以某种方式实现这种行为吗?

1 个答案:

答案 0 :(得分:0)

解决方案非常简单,但没有详细记录。

不是使用组件组json给出id数组,而是提供链接数组,填充字段 - > link_to_fetch_group

所以我的最终json改为

{
  "component_group": [
  {
    "id":"4",
    "name":"Klejarnia",
    "links":
      {"components":"/api/rest/component_groups/4/components"}
  }]
}