我想从服务器获取记录,但是将其与参数一起调用。是否存在find('foo', 1)
和findQuery('foo', 'bar=)
之间的混合函数。我正在寻找以下格式的有效载荷:
http://example.com/foo/1?bar=
这是我最后使用的功能
findQuery: function(store, type, query) {
var url = this.buildURL(type.typeKey);
if (!Em.isEmpty(query.id)) {
url += '/' + query.id;
delete query.id;
}
return this.ajax(url, 'GET', {data:query});
}
答案 0 :(得分:0)
在这种情况下,您希望将商店称为:
this.store.find('foo', {id: params.id, bar: null});
您可以覆盖适配器findQuery方法。
App.ApplicationAdapter= DS.RESTAdapter.extend({
pathForType: function(type) {
return Ember.String.camelize(type);
},
findQuery: function(store, type, query) {
var params = [];
Object.keys(query).forEach(function (key) {
if (key !== 'id') {
var value = query[key],
param = key+'=';
if (value !== undefined && value !== null) {
param+=encodeURIComponent(value);
}
params.push(param);
}
});
params = params.join('&');
var url = this.buildURL(type.typeKey);
if (query.id) {
url = [url, query.id].join('/');
url = [url, params].join('?');
} else {
url = [url, params].join('/?');
}
return this.ajax(url, 'GET');
}
});