Ember.js createRecord,然后设置belongsTo将导致事务错误
在将我的应用程序升级到Ember 1.8.1和Ember Data 1.0.0-beta.11之后,我在尝试设置两个模型之间的belongsTo关系时遇到了一个非常奇怪的错误: 试图在状态为root.loaded.updated.uncommitted时处理事件didCommit on 当我创建订单并尝试将当前行李分配给该订单时,就会出现这种情况。以下是订单控制器中的相关代码:Ember.js createRecord,然后设置belongsTo将导致事务错误,ember.js,ember-data,Ember.js,Ember Data,在将我的应用程序升级到Ember 1.8.1和Ember Data 1.0.0-beta.11之后,我在尝试设置两个模型之间的belongsTo关系时遇到了一个非常奇怪的错误: 试图在状态为root.loaded.updated.uncommitted时处理事件didCommit on 当我创建订单并尝试将当前行李分配给该订单时,就会出现这种情况。以下是订单控制器中的相关代码: assignBag: function() { var newOrder = this.get('model');
assignBag: function() {
var newOrder = this.get('model');
var shoppingBag = this.get('bag').objectAt('0');
newOrder.set('bag', shoppingBag);
this.get("controllers.order").send('saveOrder', newOrder);
this.send('fireViewedCheckoutSegmentEvent');
}.on('init'),
有问题的行是newOrder.set'bag',shoppingBag;。根据错误的性质,您可能认为这是因为新创建的订单没有在数据库中持久化。但从路线中的代码可以看出,在控制器中设置模型之前,订单已保存:
assignBag: function() {
var newOrder = this.get('model');
var shoppingBag = this.get('bag').objectAt('0');
newOrder.set('bag', shoppingBag);
this.get("controllers.order").send('saveOrder', newOrder);
this.send('fireViewedCheckoutSegmentEvent');
}.on('init'),
以下是订购路线:
包:
这件事我已经把头撞在墙上好几天了。有人知道发生了什么吗?我是否错误地设置了belongsTo关系?订单和行李型号都使用本地存储适配器
非常感谢。那么在升级之前它还能工作吗?您从哪个版本升级?我假设新版本的变更日志有一些线索。升级到1.8.1时,我遇到的一个问题是没有指定async属性的关系的功能不一致。我会看看下面的一个事实,其中一个有async:true,另一个没有,然后看看它是否可以同时使用async或两者都不使用。@givanse I从ember data 1.0.0-beta.8升级,所以这是一个非常显著的跳跃。我遇到了另一个问题,无法更新。@LAW尝试了async:true和async:true的关系,但两者都未使用async,因此无效。
import DS from 'ember-data';
export default DS.Model.extend({
bag: DS.belongsTo('bag', {async: true}),
});
import DS from 'ember-data';
export default DS.Model.extend({
order: DS.belongsTo('order'),
});