我有一个大问题。在我的模型中,我有以下对象“事件”,“问题”,“用户”。该问题与事件对象具有belongsTo关系,并且未嵌入。用户对象是问题的嵌入对象,也是belongsTo关系。在我的示例中,我想创建一个问题,然后将发布者(用户对象)设置为发布并将其发布到服务器。
我收到以下错误:
未捕获错误:在状态rootState.loaded.updated.inFlight中尝试处理事件loadedData
。用未定义的
发布后,新的问题对象应设置为事件必须在服务器上更新的事件。 我如何解决问题?
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();
}
}
答案 0 :(得分: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();
}
...
希望它有所帮助。