将更改还原为ember数据模型

out*_*344 14 ember.js ember-data

有没有办法轻松地将更改恢复为Ember Data模型?

我有一个绑定到编辑视图的模型.此视图使用户可以取消编辑,此时我想将更改还原为模型.有没有一种简单的方法可以在不克隆所有值的情况下执行此操作?

fro*_*kos 14

从Ember Data版本2开始,不再有事务,但您可以在保存的版本之前将模型重置为上次状态:

model.rollbackAttributes();
Run Code Online (Sandbox Code Playgroud)


小智 6

Ember Data支持交易的概念.我们可以创建一个事务并为它们分配Ember数据记录,如果我们要撤消更改,我们可以调用事务rollback()方法.此外,如果我们不创建显式事务,则将记录分配给默认事务,可以通过调用DS.store对象本身上的rollback()方法来回滚该事务.

  • 谢谢!为了完整起见,在Ember数据源中有一个很好的事务写入.阅读DS.Transaction定义上方的注释块 (2认同)

小智 5

默认事务的名称名为"defaultTransaction".实际上,当Embers提交时,它使用此默认事务.我不能直接在商店直接使用回滚.

而不是使用store.rollback,你应该有类似的东西:

store.get('defaultTransaction').rollback()
Run Code Online (Sandbox Code Playgroud)

或(如果您在路由器事件管理器中)

event.get('store.defaultTransaction').rollback()
Run Code Online (Sandbox Code Playgroud)