首页 > 解决方案 > 当用户取消编辑操作时,ember 回滚属性

问题描述

我有一个应用程序,用户可以在其中编辑产品并进行一些更改。当用户单击编辑按钮时,它会打开一个对话框。用户可以通过多个窗口并进行一些更改。之后,用户可以单击保存或取消编辑操作。在取消操作的情况下,我想回滚脏属性。我正在使用下面的代码来做同样的事情,但不知何故,一些更改确实会回滚,而其他更改则不会。谁能指出他们是否有问题?(以下是我的代码供参考)

cancelAction() {
 if (this.get('isEditMode') && this.get('model').get('hasDirtyAttributes')) {
   this.get('model').send('becomeInvalid');
   this.get('model').rollBackAttributes();
}

标签: ember.jsember-data

解决方案


我建议以下方法:

  1. 每次打开模态之前复制模型
  2. 当用户进行更改时,使用副本
  3. 如果用户单击“保存”,则更新原始模型并将其持久化。
  4. 如果用户单击“取消”,则无需执行任何操作。

这样可以减少对恢复属性的担心并提供更好的用户体验。


推荐阅读