我不知道这是否可以使用Ember数据,虽然我有点怀疑,但我正在使用的API支持能够生成'或'通过点击URL来查询,
/v1/subjects?first_name||last_name=*dr*
这会导致查询看起来像
select *
from subjects
where first_name like '%dr%'
or last_name like '%dr%'
但是,Ember数据甚至可以产生这样的查询吗?
this.store.find('subject', {
...
});
考虑到ember数据从对象属性构建查询字段名称的方式,它似乎不太可能支持这种自定义请求。
如果是这种情况,那么产生这种自定义请求的最佳方法是什么?只是使用jquery来编写自定义的ajax请求?
答案 0 :(得分:4)
您需要覆盖适配器中的urlForFindQuery方法。查看默认来源here,您可能会想出一些非常简单的内容:
export default DS.RESTAdapter.extend({
urlForFindQuery(query, modelName) {
const url = this._buildURL(modelName);
return `${url}?first_name||last_name=*${query.search_term}*`;
}
});
显然,这不是一个完全有效的例子,但希望你能得到这个想法。