从服务器刷新列表时如何忽略脏记录?

Chr*_*sen 5 ember.js ember-data

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

我有一个单页面应用程序,其中包含项目列表,以及在选项卡中打开项目的功能.我可以在打开的选项卡中编辑项目,而无需提交脏记录,返回列表.

如果我刷新列表,我收到错误:

Error: Attempted to handle event loadedData on <> while in state rootState.loaded.updated.uncommitted

这当然是因为我App.TestObject.find()在列表中做了一个,并且仍然有脏的未提交记录(在选项卡中打开和编辑的记录).

我的目标是显示包含更新记录的列表,但对未提交的记录不执行任何操作.我不想对未提交的记录进行回滚.这是最好的做法吗?

这是一个类似的问题,但我不希望记录恢复到原始状态. 这是一个类似的小提琴案例,但这里的回滚是正确的解决方案.

如果我想在返回列表时忽略未提交的记录,如何解决小提琴?

zep*_*lin 5

我只通过猴子修补来解决这个问题DS.Model.

DS.Model.reopen({
  loadedData: function() {
    if (this.get('isDirty') === false) {
      this._super.apply(this, arguments);
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

导致模型在处于脏状态时不自行更新,无论新JSON中有关此记录的内容是什么.其他记录会自行更新.