我似乎无法找到一种方法在ember-data中使用没有id 的嵌入对象的模型。 关于如何处理Jehuda Katz的嵌入对象This answer接近我正在寻找的东西,尽管我一直在寻找
断言失败:您必须在传递给'push'的对象中包含'id'以进行记录
这似乎是在阅读EmbeddedRecordsMixin documentation时预期的行为:
没有
id
属性的记录不被视为嵌入记录,模型实例必须具有与{Ember Data一起使用的id
属性。
从REST-API收到的JSON如下所示:
{
'line': {
_id: 5,
name: "my line",
opts: {...},
dataset: [
{x: 1473167369522, y: 5},
{x: 1473167469522, y: 6},
{x: 1473167569522, y: 7}
]
}
}
应用程序/模型/ line.js
export default DS.Model.extend({
name: DS.attr('string'),
opts: DS.attr(),
dataset: DS.hasMany('point')
});
应用程序/模型/ point.js
export default DS.Model.extend({
x: DS.attr('custom'),
y: DS.attr('')
});
应用程序/串行器/ line.js
export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
dataset: { embedded: 'always'}
}
});
我该怎样处理这个问题?
我已经考虑过只创建包含嵌套对象数组DS.attr()
的属性并完全放弃嵌套模型但这不起作用,因为我需要对其中一个嵌入对象的属性进行自定义(反)序列化
相关(虽然Ember API经历了相当多的变化):
- How to access nested object in json with Ember data
- Ember data and mongodb state?
答案 0 :(得分:0)
您可以使用ember-data-model-fragments
插件:https://github.com/lytics/ember-data-model-fragments