У меня есть некоторые связанные модели в моем приложении ember.js(с использованием Ember 1.0 и EmberData 1.0 RC2):
App.List = DS.Model.extend({
listName : DS.attr( ),
cards : DS.hasMany( 'card', { async : true } )
});
и
App.Card = DS.Model.extend({
description : DS.attr( ),
list : DS.belongsTo( 'list' )
});
Я использую следующий код для сохранения моделей и добавления их в hasMany.
createCard : function(){
var list = this.get( 'model' ),
card ;
card = this.store.createRecord( 'card', {
description : this.get( 'cardDescription' ),
list : list
} );
card.save().then( function(){
var cards = list.get( 'cards' );
cards.then( function(){
cards.pushObject( card );
list.save();
} );
} );
this.set( 'cardDescription', '' );
}
Я выполняю прерывистые проблемы при сохранении родительского элемента коллекции hasMany. Иногда карты добавляются в коллекцию списков должным образом (списки имеют массив идентификаторов карты), а иногда карты добавляются некорректно (списки имеют массив объектов карты), и иногда отношения теряются вместе (списки не содержат массив карт).
Эти симптомы заставляют меня думать, что это проблема асинхронности или что я неправильно использую promises при сохранении объектов.