Ember.js 使用参数获取实例
我想从服务器上获取一条记录,但同时调用它和一个参数。是否有这样一个函数是Ember.js 使用参数获取实例,ember.js,ember-data,Ember.js,Ember Data,我想从服务器上获取一条记录,但同时调用它和一个参数。是否有这样一个函数是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)
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});
}
在这种情况下,您希望将存储称为:
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');
}
});
谢谢你的努力。我对函数进行了一些重构,但其原理是合理的。虽然查询可以工作,但ember实际上并不能很好地处理响应。可能是因为它需要一个数组,而它只得到一个对象。