如何在Ember中通过id和查询参数查找记录

时间:2015-06-23 19:34:36

标签: javascript ember.js

我尝试使用ember-data通过id和查询参数向端点发送请求。 ajax调用的结束输出为http://api.example.com/invoices/1?key=value。据我所知,ember-data的store没有本地方法来查找id和查询参数(以下两种方法都没有):

// outputs http://api.example/com/invoices/1
this.store.find('invoice', 1);

// outputs http://api.example.com/invoices?id=1&key=value
this.store.find('invoice, {id: 1, key: value});

相反,我一直试图修改发票适配器。我们的后端是Django,因此我们正在使用ActiveModelAdapter。我想覆盖构建url的方法,这样如果id对象中存在query,它会自动将其删除并将其附加到url,然后再转换{{1将对象转换为url参数。

唯一的问题是我无法找出要覆盖的方法。我已查看了query here的文档,并且我已尝试覆盖ActiveModelAdapterfindRecordbuildUrl和{ {1}}方法,但由于某种原因,我们都没有调用它们(我已尝试通过urlForFindurlForQuery进行记录)。我知道适配器工作正常,因为console.log正在运行。

这是我的适配器文件:

Ember.debug

在没有覆盖适配器方法的情况下,是否有更简单的方法来完成我尝试做的事情?如果没有,我需要覆盖哪些方法?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用this.store.findQueryOne('invoice',1,{key:value});

https://github.com/emberjs/data/pull/2584