使用Ember数据获取非常规JSON

时间:2014-05-16 15:56:32

标签: ember.js ember-data

我正在使用Ember 1.5.1和Ember-data 1.0 beta,我正在使用DS.RESTADAPTER CLASS。 我有两个模型,比如PostUser。服务器使用以下JSON

回复GET请求
{
  data: [ .... ]
}

datausersposts的数组,具体取决于请求。

RestAdapter的设计理念是与服务器交换的JSON应该是常规的,并且它期望从服务器返回的JSON应该如下所示

{
  posts: [ .... ]
}

{
  users: [ .... ]
}

取决于请求。

如何自定义ember-data来处理这种情况?

1 个答案:

答案 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