Я использую Ember Data 1.0 beta.Ember Data - Каков правильный способ обновления отношений после сохранения записи?
У меня есть модель, определенную так:
App.Artist = DS.Model.extend({
first_name: DS.attr('string'),
last_name: DS.attr('string'),
practices: DS.hasMany('practice')
});
И когда я принести в модели на API/художников, я получаю сбор и полезную нагрузку для каждого художника включает в себя атрибут «практики» с массивом от Ид:
{
"artists": [
{
"id": 2,
"first_name": "An",
"last_name": "Artist",
"practices": [
1,
2
]
},
]
}
Пока все хорошо. Возникает волшебная магия, и я могу получить доступ к свойству «Практики» на экземпляре «App.Artist» без проблем.
Теперь, когда я создаю художник, сервер возвращает со следующей полезной нагрузкой:
{
"artist": {
"id": 38,
"first_name": "New",
"last_name": "Artist",
"practices": [
4
]
}
}
модели обновляются с новым идентификатором. Однако, когда я перехожу к «практикам», я получаю необработанные значения массива, а не соответствующие экземпляры модели, которые я ожидаю.
Итак, создав запись с отношениями, мне нужно вручную добавить связанные объекты обратно к экземпляру? Или я могу заставить модель повторно синхронизировать ее отношения?
Заранее благодарим за понимание!
Update:
Оказывается, что отношения теряются, так как модель не десериализации после завершения операции сохранения завершена. Модель может быть перенесена обратно в хранилище, что приведет к десериализации данных.
Итак, следуя из кода выше, если у меня есть экземпляр App.Artist, как artist
затем
artist.get('store').push('artist', artist.get('data'));
заставит отношения должны быть доступны. Однако я еще не уверен, правильно ли это.