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数据模型很困难。