我正在使用Ember1.5.1和Ember -data1.0测试版,我正在使用DS.RESTADAPTER类。我有两个模型,比如说Post和User。服务器在GET请求时使用以下JSON进行回复
{
data: [ .... ]
}data是由users或posts组成的数组,具体取决于请求。
RestAdapter的设计思想是,与服务器交换的JSON应该是常规的,它希望从服务器返回的JSON应该如下所示
{
posts: [ .... ]
}或
{
users: [ .... ]
}这取决于请求。
如何定制ember-data来处理这种情况?
发布于 2014-05-20 20:27:29
通过定制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
https://stackoverflow.com/questions/23699678
复制相似问题