有没有办法轻松恢复对 Ember Data 模型的更改?
我有一个绑定到编辑视图的模型。此视图使用户能够取消编辑,此时我想恢复对模型的更改。有没有一种简单的方法可以在不克隆所有值的情况下做到这一点?
有没有办法轻松恢复对 Ember Data 模型的更改?
我有一个绑定到编辑视图的模型。此视图使用户能够取消编辑,此时我想恢复对模型的更改。有没有一种简单的方法可以在不克隆所有值的情况下做到这一点?
从 Ember Data 版本 2 开始,不再有事务,但您可以使用以下命令将模型重置为保存版本之前的最后状态:
model.rollbackAttributes();
Ember Data 支持事务的概念。我们可以创建一个事务并将 Ember 数据记录分配给它们,如果我们想要撤消更改,我们可以调用事务 rollback() 方法。此外,如果我们不创建显式事务,则将记录分配给默认事务,可以通过调用 DS.store 对象本身的 rollback() 方法来回滚。
默认事务的名称名为“defaultTransaction”。事实上,当 Embers 提交时,它使用这个默认事务。我不能直接在商店上直接使用回滚。
而不是使用 store.rollback,你应该有类似的东西:
store.get('defaultTransaction').rollback()
或(如果您在路由器事件管理器中)
event.get('store.defaultTransaction').rollback()
如果模型处于“isDirty”状态,您也可以对模型本身进行回滚。
this.get('model').rollback();
例子
export default Ember.ObjectController.extend({
actions: {
cancelEditModel: function(){
this.get('model').rollback();
this.transitionToRoute('...');
return false;
}
}
});