在backbone.js中为模型分配不同的模型

时间:2014-05-02 04:24:43

标签: javascript backbone.js

我是backbone.js的新手。

我将模型值存储在像belo

这样的变量中

window.oldModel=this.model

当用户同步修改数据时,我会向用户显示实时预览,如果他点击保存更改,我就会提交数据。但是,如果他点击放弃更改,那么我将模型分配给以前的模型,如下所示

this.model=window.oldModel

这不反映页面上的数据,我需要刷新页面以查看旧值,但我希望更改立即生效。

1 个答案:

答案 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();

然后在需要时像以前一样分配它。