我尝试使用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的文档,并且我已尝试覆盖ActiveModelAdapter
,findRecord
,buildUrl
和{ {1}}方法,但由于某种原因,我们都没有调用它们(我已尝试通过urlForFind
和urlForQuery
进行记录)。我知道适配器工作正常,因为console.log
正在运行。
这是我的适配器文件:
Ember.debug
在没有覆盖适配器方法的情况下,是否有更简单的方法来完成我尝试做的事情?如果没有,我需要覆盖哪些方法?
提前感谢您的帮助!
答案 0 :(得分:2)
您可以使用this.store.findQueryOne('invoice',1,{key:value});