1

我的用户 JSON 返回结果如下:

{
    users: [{...}]
    some_other_data: {}
    some_other_data2 [{...}]
}

如果我从 JSON 结果中删除其他键 - 那么它会正常工作,但我确实需要将这些额外的其他“键”包含在 JSON 结果中。

我尝试从此处的答案中应用解决方案-使用 ember-data find() 和多个参数返回单个记录

但是改变我的代码

App.Store = DS.Store.extend
    revision: 12
    adapter: 'DS.RESTAdapter'

类似于上面的解决方案只会弄乱我的 ember 应用程序请求的路径。

4

1 回答 1

2

ember-data 中的 JSON 响应不支持额外属性。

唯一受支持的“额外”属性是metaand since,例如:

{
  meta: {}
  since: {}
  users: [{...}]
}

稍后可以通过挂钩到extractMeta序列化程序的函数来提取这些额外的属性,如下所示:

App.CustomRESTSerializer = DS.RESTSerializer.extend({
  extractMeta: function(loader, type, json) {
    var meta, since;
    meta = json[this.configOption(type, 'meta')];
    since = json[this.configOption(type, 'since')];
    if (!meta || !since) { return; }
    Ember.set('App.metaDataForLastRequest', meta);
    Ember.set('App.sinceForLastRequest', since);
    this._super(loader, type, json);
  }
});

App.Store = DS.Store.extend({
  adapter: DS.RESTAdapter.create({
    serializer: App.CustomRESTSerializer
  })
});

IMO,如果可以的话,您应该更改从后端返回的 JSON,并通过定义一个额外的模型来检索额外的数据,并将其绑定到您的User模型,如hasManybelongsTo使事情正常工作。

希望能帮助到你。

于 2013-08-04T22:52:43.703 回答