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
});
我的模型看起来像:
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
});