0

我有一个大问题。在我的模型中,我有以下对象“事件”、“问题”、“用户”。问题与事件对象具有belongsTo 关系,并且未嵌入。用户对象是问题的嵌入对象,也是belongsTo 关系。在我的示例中,我想创建一个问题,然后将报告者(用户对象)设置为发出并将其发布到服务器。

我收到以下错误:


未捕获的错误:尝试loadedData在 rootState.loaded.updated.inFlight 状态下处理事件。未定义调用


发布后,新问题对象应设置为事件,事件必须在服务器上更新。我如何解决问题?

setupController: function(controller, model){
 this._super(controller, model);
  var transaction = this.get('store').transaction();
  var issue = transaction.createRecord(App.Issue, {});
  controller.set('model', issue);
  var appController = this.controllerFor('application');
  controller.set('reporter',appController.get('user'));
}

saveIssue: function(){
   var issue = this.get('model');
   var rep = this.get('reporter');
   issue.set('reporter',rep);
   var transaction = issue.get('transaction');
     if(transaction != null){
        transaction.commit();
     }
}
4

1 回答 1

0

我可以在您的代码中看到可能导致问题的一个区别是setupController您使用的是商店的defaultTransaction

var transaction = this.get('store').transaction();

但是在saveIssue您使用issue模型自己的事务时,这可能是或不同的事务:

var transaction = issue.get('transaction');

所以我的建议是在两个地方使用相同的事务,例如saveIssue

var transaction = this.get('store').transaction();
if(transaction != null){
  transaction.add(issue);
  transaction.commit();
}
...

希望能帮助到你。

于 2013-08-13T10:28:02.467 回答