使用 Ember 数据的自定义 API 调用
Custom API calls with Ember Data
我不知道 Ember 数据是否可行,虽然我有点怀疑,但我正在使用的 API 支持能够产生 'or'通过点击
等网址进行查询
/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 请求?
你会想要覆盖 urlForFindQuery method in your adapter. Looking at the default source here,你可能会想出一些非常简单的东西:
export default DS.RESTAdapter.extend({
urlForFindQuery(query, modelName) {
const url = this._buildURL(modelName);
return `${url}?first_name||last_name=*${query.search_term}*`;
}
});
显然这不是一个完整的示例,但希望您能理解。
我不知道 Ember 数据是否可行,虽然我有点怀疑,但我正在使用的 API 支持能够产生 'or'通过点击
等网址进行查询/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 请求?
你会想要覆盖 urlForFindQuery method in your adapter. Looking at the default source here,你可能会想出一些非常简单的东西:
export default DS.RESTAdapter.extend({
urlForFindQuery(query, modelName) {
const url = this._buildURL(modelName);
return `${url}?first_name||last_name=*${query.search_term}*`;
}
});
显然这不是一个完整的示例,但希望您能理解。