Javascript Emberjs';s findAll不使用嵌套模型

Javascript Emberjs';s findAll不使用嵌套模型,javascript,ember.js,frontend,Javascript,Ember.js,Frontend,我有以下型号: App.MetadataItem = DS.Model.extend({ type: DS.attr('string'), name: DS.attr('string'), fieldName: DS.attr('string'), programMetadata: DS.belongsTo('programMetadata') }); App.ProgramMetadata = DS.Model.extend({ programId: DS.attr('n

我有以下型号:

App.MetadataItem = DS.Model.extend({
  type: DS.attr('string'),
  name: DS.attr('string'),
  fieldName: DS.attr('string'),
  programMetadata: DS.belongsTo('programMetadata')
});

App.ProgramMetadata = DS.Model.extend({
  programId: DS.attr('number'),
  metadataItems: DS.hasMany('metadataItem')
});
这是我的API的回应:

[{
    "program_metadata": {
      "_id": "525c5ed50bdb82bb6a000001"
      "program_id": 6379,
      "metadata_items": [
        { ... },
        { ... },
        { ... }
      ]
    }
  },
  {
    "program_metadata": { ... }
  }]
我已经在处理id/\u id的问题,我可以通过重写序列化程序中的
extractSingle
方法来获取一条记录,但它不能使用
extractArray
。我的代码在到达
typeForRoot
方法时中断,它尝试使用数组索引作为类型。
鉴于此API响应,我应该如何在
extractArray
中构建阵列?

您使用的是哪个版本的ember data?ember data 1.0 beta版放弃了对复杂响应的支持,就像您使用的一样。除非在extractArray中重新构造有效负载,否则这种响应将失败。首先,尝试从响应中删除元数据项。我还记得ember data期望类似于{“program_metadatas”:[{},{},{},{},{}]}如果您仍然感兴趣,我明天可能会有更多内容给您。很抱歉耽搁了,我今天刚刚看到了您的答案。我使用的是来自builds.emberjs.com的最新版本的ember数据。我最终用主干编写了这个应用程序,因为我的大多数API响应都有点不一致,这使得使用ember数据模型很困难。