Ember模型生命周期,并恢复到原始状态

我正在努力理解关于烬模型生命周期的一切。 我已经创建了这个jsfiddle来说明我的问题。 当点击列表中的一个条目,编辑一个值,然后单击版本链接返回列表时,出现以下错误:

未捕获的错误:试图处理事件loadedData上,而在状态rootState.loaded.updated.uncommitted。 用{}调用

这是什么造成的? 我知道对象状态现在很脏,但是如何在打开列表时强制刷新所有对象?

此外,如果表单没有保存,如何放弃对属性的所有更改的任何建议? 我在考虑克隆对象,在编辑表单中使用该克隆,并在保存时将其与原始文件合并。 没有我想象的那么容易。

使用最新的ember和ember-data。


经过与@tchak的快速讨论后,解决方案可以覆盖Version路由的退出函数,并回滚当前模型。

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();
  }
});
链接地址: http://www.djcxy.com/p/64071.html

上一篇: Ember model lifecycle, and reverting to original state

下一篇: Managing transactions and relationships