当我在商店进行.find
电话时:
this.store.find('user', { age: 24 });
它生成请求:
GET /user?age=24
我无法弄清楚如何自定义从该请求生成的查询参数。我查看了RESTSerializer和RESTAdapter的源代码,但没有看到任何会生成该查询字符串的内容。
我想让Ember产生类似的东西:
GET /user?details=age eq 24
而不是默认值:
GET /user?age=24
这可能吗?
与来源的链接:
DS.Store:https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/system/store.js#L44
DS.RESTAdapter:https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/adapters/rest_adapter.js#L13
DS.RESTSerializer:https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/serializers/rest_serializer.js#L15
答案 0 :(得分:1)
只需将您的请求更改为this.store.find('user', {details:'age eq 24'});
您还需要覆盖pathForType
才能使user
单数
App.UserAdapter = DS.RESTAdapter.extend({
pathForType: function(type) {
var camelized = Ember.String.camelize(type);
return camelized; //Ember.String.pluralize(camelized);
},
});