我正在使用 ember-pre4 和 ember-data rev 11。
楷模:
A = DS.Model.extend({
//some other fields
b: DS.hasMany('B')
})
B = DS.Model.extend({
//some other fields
a: DS.hasOne('A')
})
在我的路由器中,我创建了模型 A 的实例并创建了模型 B 的实例并将它们连接起来。他们都没有 server-side id
。像这样的东西:
var a = A.createRecord();
b = B.createRecord();
b.set('a', a)
a.get('b').addObject(b)
当我想保存我制作的那些模型时:
a.transaction.commit()
我希望看到:
- 用空 b 保存 a // []
- 将a pass a的id存入b后保存b
- 保存 b 后重新获取 a
但不幸的是,ember 并行执行了 2 个请求,而 a 的请求数据为:
"{//some fields, b: [/url_to_b//]}" // we dont have b's id
b的请求数据是:
"{//some fields } // we dont have a's id
解决这个问题的最佳方法是什么,新的 ember 是否有适合我情况的默认解决方案,或者我应该手动完成所有工作?