【问题标题】:GET unconventional JSON with Ember-data使用 Ember 数据获取非常规 JSON
【发布时间】:2014-05-16 15:56:31
【问题描述】:

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

{
  data: [ .... ]
}

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

RestAdapter 的设计理念是与服务器交换的 JSON 应该是常规的,它期望从您的服务器返回的 JSON 应该是这样的

{
  posts: [ .... ]
}

{
  users: [ .... ]
}

取决于请求。

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

【问题讨论】:

标签: ember.js ember-data


【解决方案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

【讨论】:

  • 只是为了好玩,如果您希望以find 方法而不是findAll 为目标,您可以使用extractSingle。
猜你喜欢
  • 2014-04-24
  • 1970-01-01
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多