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

时间:2013-01-04 09:55:24

标签: javascript ember.js ember-data

我很难理解有关ember模型生命周期的一切。我创建了this jsfiddle来说明我的问题。单击列表中的一个条目,编辑值,然后单击版本链接返回列表时,出现以下错误:

  

未捕获错误:在状态rootState.loaded.updated.uncommitted中尝试处理事件loadedData。用{}

调用

造成这种情况的原因是什么?我得到对象状态现在是脏的,但是如何在列表打开时强制刷新所有对象?

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

使用最新的余烬和余烬数据。

1 个答案:

答案 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();
  }
});