Ember存储不加载嵌套的hasMany关系数据

时间:2017-01-27 16:03:01

标签: javascript ember.js

我正在调用我构建的API。响应返回一个大JSON,其中嵌入了所有数据。 例如:

"feed" : {
  "id": 12345,
  "name": "trogdor",
  "items": [
    {
      "id":6789,
      "content": I am an items content
    },
    {
      "id":6789,
      "content": I am an items content
    },
    {
      "id":6789,
      "content": I am an items content
    },
    {
      "id":6789,
      "content": I am an items content
    }
  ]
}

正如您所见,Feed模型返回hasMany项。

所以我的模型定义如下:

Feed模型:

export default DS.Model.extend({
  name: attr('string'),
  items: hasMany('item')
});

物品型号:

export default DS.Model.extend({
  content: attr('string'),
  items: belongsTo('feed')
});

但是当我从模型调用中返回承诺时,当我呼叫模型""项目"时,没有设置数据。相反,我只是得到一个没有属性或数据的商店类。

当我记录模型并尝试打开data哈希时,我得到一个没有数据的余烬EmptyObject

1 个答案:

答案 0 :(得分:0)

使用Ember CLI,为您的Feed模型生成新的序列化程序: ember g serializer feed

然后,按如下方式定义序列化程序:

import DS from 'ember-data';
import ApplicationSerializer from './application';

export default ApplicationSerializer.extend(DS.EmbeddedRecordsMixin, {
   attrs: {
     items: { embedded: 'always'},
   }
});

确保扩展主DS.RESTadapter适配器文件中的application.js,以便Ember正确序列化嵌入式嵌套JSON数据,否则Ember会希望服务器中的有效负载位于JSON API格式。