Ember-данные встроенные записи текущего состояния?
Я действительно застрял с множеством проблем, вызванных Ember-данными, и в нем отсутствует поддержка встроенных записей.
Я искал всю сеть, большинство постов устарели, другие устарели + требует от меня использования сторонних библиотек или подключения 300 строк специального кода с множеством недостатков.
Я понятия не имею, как использовать встроенные записи с ember-данными, как они есть сегодня?
редактировать: теперь есть новая документация http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html
1 ответ
С использованием ActiveModelSerializer
Вы можете включить EmbeddedRecordsMixin
что позволяет использовать встроенные записи. (В канарских версиях 1.0 beta 9+ вы можете использовать JsonSerializer
/RESTSerializer
также)
Serializer
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()
});
JSON
{
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'}
}
});