Ember.js 将更改还原为余烬数据模型
有没有一种方法可以轻松地将更改恢复到余烬数据模型Ember.js 将更改还原为余烬数据模型,ember.js,ember-data,Ember.js,Ember Data,有没有一种方法可以轻松地将更改恢复到余烬数据模型 我有一个绑定到编辑视图的模型。此视图允许用户取消编辑,此时我希望恢复对模型的更改。有没有一种简单的方法可以做到这一点,而不必将所有的值都克隆出来?余烬数据支持事务的概念。我们可以创建一个事务并将余烬数据记录分配给它们,如果要撤消更改,可以调用transactions rollback()方法。此外,如果我们不创建显式事务,则记录将分配给默认事务,该事务可以通过调用DS.store对象本身上的rollback()方法回滚。默认事务的名称命名为“de
我有一个绑定到编辑视图的模型。此视图允许用户取消编辑,此时我希望恢复对模型的更改。有没有一种简单的方法可以做到这一点,而不必将所有的值都克隆出来?余烬数据支持事务的概念。我们可以创建一个事务并将余烬数据记录分配给它们,如果要撤消更改,可以调用transactions rollback()方法。此外,如果我们不创建显式事务,则记录将分配给默认事务,该事务可以通过调用DS.store对象本身上的rollback()方法回滚。默认事务的名称命名为“defaultTransaction”。事实上,当余烬提交时,它使用这个默认事务。我不能直接在商店上使用回滚 您不应使用store.rollback,而应具有以下功能:
store.get('defaultTransaction').rollback()
或者(如果您在路由器事件管理器中)
如果模型处于“isDirty”状态,您也可以对其本身进行分析
范例
export default Ember.ObjectController.extend({
actions: {
cancelEditModel: function(){
this.get('model').rollback();
this.transitionToRoute('...');
return false;
}
}
});
从Ember Data version 2开始,不再有事务,但您可以使用以下命令将模型重置为保存版本之前的最后状态:
model.rollbackAttributes();
object.get('transaction').rollback()
谢谢!为了完整性起见,在Ember数据源中有一个很好的事务写入。阅读DS.transaction定义上方的注释块transaction的注释块还指出,在默认事务的情况下,我们可以直接在store对象上运行“提交”或“回滚”。当我尝试执行回滚时,我得到一个错误:TypeError:Object没有方法“rollback”,对此有任何帮助吗?
export default Ember.ObjectController.extend({
actions: {
cancelEditModel: function(){
this.get('model').rollback();
this.transitionToRoute('...');
return false;
}
}
});
model.rollbackAttributes();