我正在使用Ember 1.5.1和Ember-data 1.0 beta,我正在使用DS.RESTADAPTER CLASS。
我有两个模型,比如Post
和User
。服务器使用以下JSON
{
data: [ .... ]
}
data
是users
或posts
的数组,具体取决于请求。
RestAdapter的设计理念是与服务器交换的JSON应该是常规的,并且它期望从服务器返回的JSON应该如下所示
{
posts: [ .... ]
}
或
{
users: [ .... ]
}
取决于请求。
如何自定义ember-data来处理这种情况?
答案 0 :(得分:1)
我能够通过自定义extractArray
方法来处理上述问题所描述的情况
// override extractArray method
App.PostSerializer = DS.RESTSerializer.extend({
extractArray: function(store, type, payload, id, requestType) {
var myposts = payload.data;
var newpayload = { posts: myposts };
return this._super(store, type, newpayload, id, requestType);
}
});
以下资源非常有用:
https://github.com/emberjs/data/blob/master/TRANSITION.md#rest-adapter-and-serializer-configuration http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_extractArray