0
我有以下型號模型的關係:如何保存與Ember數據
App.Loan = DS.Model.extend
name: DS.attr('string'),
products: DS.hasMany('App.Product')
然後在我的代碼我打電話一個貸款對象,它具有相關的許多產品上save
方法,但只有獲得貸款發佈到服務器,關聯的對象不會。
我有以下型號模型的關係:如何保存與Ember數據
App.Loan = DS.Model.extend
name: DS.attr('string'),
products: DS.hasMany('App.Product')
然後在我的代碼我打電話一個貸款對象,它具有相關的許多產品上save
方法,但只有獲得貸款發佈到服務器,關聯的對象不會。
快速查看代碼,似乎這是有意的,因爲調用保存在記錄上會添加此記錄,並且只在當前事務中記錄此記錄。如果嵌入,還會添加關聯的對象。在你的情況下,我會先創建一個新的事務,添加記錄和關聯的對象,然後調用這個事務的提交。類似於
var transaction = store.transaction();
transaction.add(loan)
loan.get('products').forEach(function(product)){
transaction.add(product);
});
transaction.commit()
如果要將產品嵌入貸款中,可以通過像這樣配置適配器來完成。假設您正在使用默認的REST適配器:
DS.RESTAdapter.map('App.Loan', {
products: { embedded: always }
}
如果我這樣做,我的產品不會與服務器中的貸款關聯,因爲它們是由他們自己發送的。 – ryudice
所以,我想你想在貸款中嵌入產品。 –