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

时间:2013-05-30 14:58:10

标签: backbone.js deep-copy backbone.js-collections

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

由于

4 个答案:

答案 0 :(得分:1)

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

var widget = this.widgetsCollection.get(widgetId)
var newWidget=new Widget(widget.attributes);

这给出了一个带有不同cid的副本。

enter image description here

答案 1 :(得分:0)

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

可以在此SO主题中找到一个示例:What is the most efficient way to deep clone an object in JavaScript?

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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