2013-09-03 8 views
0

Я использую 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')); 

заставит отношения должны быть доступны. Однако я еще не уверен, правильно ли это.

ответ

Смежные вопросы