ember-数据异步有很多请求

ember-data async hasMany requests

我的模型看起来像:

export default DS.Model.extend({
  ordernumber: DS.attr('string'),
  allowMeasurementsFrom: DS.attr('date'),
  devices: DS.hasMany('device', { async: true })
});

当我向一个关于一个订单的页面发出请求时,我收到了这些请求:

GET "http://localhost:51799/devices/0fd27d12-fd25-412d-bcf6-6e84064bd951".
GET "http://localhost:51799/devices/a84142bd-b314-4e6e-a29f-6821fb7f32fb".
GET "http://localhost:51799/devices/3b1ed530-1cf6-42fb-90b7-f1d4886dce05".

但我希望有多个 ID 的请求,就像文档中所说的那样 here。喜欢:

GET "http://localhost:51799/devices?ids[]=3b1ed530-1cf6-42fb-90b7-f1d4886dce05&ids[]=a84142bd-b314-4e6e-a29f-6821fb7f32fb&ids[]=3b1ed530-1cf6-42fb-90b7-f1d4886dce05".

这是我的模板:

{{id}}

{{#each dev in devices}}
  <img {{bind-attr src=dev.image}}>
  {{dev.deviceId}}
{{/each}}

我试过直接遍历设备并先将它们放入控制器,然后再遍历设备。在这两种情况下,它都会发出 n 请求。

我正在使用 DS.RESTAdapter。版本:Ember:1.10.0 Ember 数据:1.0.0-beta.15

我掌握的信息有点过时了。幸运的是,您需要的信息已得到相当合理的记录。你想要 coalesceFindRequests property。在您的适配器中将其设置为 true,它应该像您在指南中看到的那样合并它们。如果您还没有覆盖适配器,您可以通过创建一个如下所示的 adapters/application.js 文件来实现:

export default DS.RESTAdapter.extend({
    coalesceFindRequests: true
});