使用Ember Data进行自定义API调用

时间:2015-06-16 20:04:12

标签: ember.js ember-data ember-cli

我不知道这是否可以使用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请求?

1 个答案:

答案 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}*`;
    }
});

显然,这不是一个完全有效的例子,但希望你能得到这个想法。