我很难理解有关ember模型生命周期的一切。我创建了this jsfiddle来说明我的问题。单击列表中的一个条目,编辑值,然后单击版本链接返回列表时,出现以下错误:
未捕获错误:在状态rootState.loaded.updated.uncommitted中尝试处理事件
调用loadedData
。用{}
造成这种情况的原因是什么?我得到对象状态现在是脏的,但是如何在列表打开时强制刷新所有对象?
此外,如果表单未保存,有关如何放弃对属性的所有更改的任何建议?我正在考虑克隆对象,在编辑表单中使用该克隆,并在保存时将其与原始文件合并。不像我想象的那么容易。
使用最新的余烬和余烬数据。
答案 0 :(得分:3)
在与@tchak进行快速讨论后,解决方案可能是覆盖Version route的exit函数,并回滚当前模型。
App.VersionRoute = Ember.Route.extend({
exit: function() {
var controller = this.controllerFor(this.templateName),
content = controller.get('content');
if (content.get('isDirty')) {
content.get('transaction').rollback();
}
this._super();
}
});