我真的遇到了由Ember数据引起的大量问题,并且缺乏嵌入式记录支持。
我搜索了整个网络,大部分帖子已经过时,其他帖子已过时+要求我使用第三方库或连接300行特殊代码,但有很多缺点。
我不知道如何使用嵌入式记录和今天的ember-data?
编辑:现在有一个新文档http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html
答案 0 :(得分:31)
使用ActiveModelSerializer
,您可以添加允许您使用嵌入式记录的EmbeddedRecordsMixin
。 (在金丝雀版本中,1.0 beta 9+,您也可以使用JsonSerializer
/ RESTSerializer
)
App.ColorSerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
foos: {embedded: 'always'}
}
});
App.Color = DS.Model.extend({
color: DS.attr(),
foos: DS.hasMany('foo')
});
App.Foo = DS.Model.extend({
name: DS.attr()
});
{
colors:[
{
id: 1,
color: "red",
foos:[
{
id:1,
name:'something 1'
},
{
id:2,
name:'something 2'
}
]
},
...
http://emberjs.jsbin.com/qagalabaso/1/edit
对于RESTSerializer
和JsonSerializer
,它遵循相同的模式
App.ColorSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
foos: {embedded: 'always'}
}
});