Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
如何在Backbone.js中将模型从一个集合复制到另一个集合_Backbone.js_Deep Copy_Backbone.js Collections - Fatal编程技术网

如何在Backbone.js中将模型从一个集合复制到另一个集合

如何在Backbone.js中将模型从一个集合复制到另一个集合,backbone.js,deep-copy,backbone.js-collections,Backbone.js,Deep Copy,Backbone.js Collections,我试图将一个模型从一个主干集合复制到另一个集合,但问题是,只有引用是副本,也就是说,如果我在一个集合中更改模型的值,那么其他集合的值将自动更改。问题是如何制作模型对象的精确副本 谢谢尝试创建深度副本,这将创建具有相同值的新对象实例 在这个SO线程中可以找到一个例子:尝试创建一个深度副本,它将创建一个具有相同值的新对象实例 在这个SO线程中可以找到一个例子:我尝试了所有的克隆方法,但结果并不好,因为clonned模型的cid变得相同,这导致了问题。所以我采用了这个方法 var widget = t

我试图将一个模型从一个主干集合复制到另一个集合,但问题是,只有引用是副本,也就是说,如果我在一个集合中更改模型的值,那么其他集合的值将自动更改。问题是如何制作模型对象的精确副本


谢谢

尝试创建深度副本,这将创建具有相同值的新对象实例


在这个SO线程中可以找到一个例子:

尝试创建一个深度副本,它将创建一个具有相同值的新对象实例


在这个SO线程中可以找到一个例子:

我尝试了所有的克隆方法,但结果并不好,因为clonned模型的cid变得相同,这导致了问题。所以我采用了这个方法

var widget = this.widgetsCollection.get(widgetId)
var newWidget=new Widget(widget.attributes);
这将提供具有不同cid的副本


我尝试了所有的克隆方法,但结果并不好,因为clonned模型的cid变得相同,这导致了问题。所以我采用了这个方法

var widget = this.widgetsCollection.get(widgetId)
var newWidget=new Widget(widget.attributes);
这将提供具有不同cid的副本


主干网模型中还存在一个方法克隆,该方法创建具有相同属性的新副本

this.widgetsActiveCollection.add(widget.clone());

主干模型中还存在一个方法克隆,它创建具有相同属性的新副本

this.widgetsActiveCollection.add(widget.clone());

这就是我如何创建模型的深层副本

var newModel = new createModel(JSON.parse(JSON.stringify(oldModel)));
newCollection.add(newModel );

这就是我如何创建模型的深层副本

var newModel = new createModel(JSON.parse(JSON.stringify(oldModel)));
newCollection.add(newModel );
尝试创建深度副本:尝试创建深度副本:或
新小部件(this.widgetsCollection.get(widgetId).toJSON())
新小部件(this.widgetsCollection.get(widgetId).toJSON())