我是backbone.js
的新手。
我将模型值存储在像belo
这样的变量中 window.oldModel=this.model
当用户同步修改数据时,我会向用户显示实时预览,如果他点击保存更改,我就会提交数据。但是,如果他点击放弃更改,那么我将模型分配给以前的模型,如下所示
this.model=window.oldModel
这不反映页面上的数据,我需要刷新页面以查看旧值,但我希望更改立即生效。
答案 0 :(得分:0)
模型是一个JavaScript对象,因此当您将window.oldModel
分配给this.model
时,它会保留一个引用 - 而不是模型的实际副本。变化将始终反映在两者中。
根据您的应用,您需要保存模型属性:
window.oldModel = {
attribute1 : this.model.get('attribute1'),
attribute2 : this.model.get('attribute2')
// and so on ...
};
然后使用
重置它this.model.set({
attribute1 : window.oldModel.attribute1,
attribute2 : window.oldModel.attribute2
// ....
});
或者,您可能更容易clone
您的模型(http://backbonejs.org/#Model-clone):
window.oldModel = this.model.clone();
然后在需要时像以前一样分配它。