如何使用ember数据保存模型关系

时间:2013-08-07 10:13:47

标签: ember.js ember-data

我有以下型号:

App.Loan = DS.Model.extend
    name: DS.attr('string'),
    products: DS.hasMany('App.Product')

然后在我的代码中,我在Loan对象上调用save方法,该对象有许多关联的产品,但只有贷款被发布到服务器,关联的对象没有。

1 个答案:

答案 0 :(得分:0)

快速查看代码,似乎这是有意的,因为在记录上调用save会添加此记录,并且只在当前事务中添加此记录。如果嵌入了相关对象,也会添加它们。

在您的情况下,我首先创建一个新事务,添加记录和关联对象,然后在此事务上调用commit。像

这样的东西
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 }
}