Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在backbone.js中为模型分配不同的模型_Javascript_Backbone.js - Fatal编程技术网

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

Javascript 在backbone.js中为模型分配不同的模型,javascript,backbone.js,Javascript,Backbone.js,我不熟悉backbone.js 我将模型值存储在一个变量中,如belo window.oldModel=this.model 当用户同步修改数据时,我向用户显示实时预览,如果用户单击保存更改,我将提交数据。但是,如果他单击放弃更改,那么我将使用前面的模型分配模型,如下所示 this.model=window.oldModel 这并不反映页面上的数据,我需要刷新页面以查看旧值,但我希望更改立即生效。模型是一个JavaScript对象,因此当您将window.oldModel分配给此.model时,

我不熟悉backbone.js

我将模型值存储在一个变量中,如belo

window.oldModel=this.model

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

this.model=window.oldModel


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

模型是一个JavaScript对象,因此当您将window.oldModel分配给此.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
  // ....
});
或者,更简单的方法是克隆模型:


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

看起来像古德一样的人会尝试
window.oldModel = this.model.clone();