javascript - 用于编辑模型的临时 Backbone 集合

标签 javascript backbone.js backbone-relational

我正在处理一个系列和模型:

var StuffCollection = Backbone.Collection;
var StuffModel = Backbone.RelationalModel;

在一个地方,我用模型创建了该集合的一个实例:

var stuffCollection = new StuffCollection();
// do stuff here to load a bunch of models

在另一个地方,我想克隆该集合进行编辑而不编辑原始集合:

var tempStuffCollection = new StuffCollection();
tempStuffCollection.reset(stuffCollection.models);
// do stuff here to edit the collection

但是当我在 tempStuffCollection 中编辑模型时,它们会在 stuffCollection 中编辑 所以我尝试了这个:

var tempStuffCollection = new StuffCollection();
tempStuffCollection.reset(stuffCollection.toJSON());
// do stuff here to edit the collection

所以看起来所有引用都被删除了......但是没有!当我在 tempStuffCollection 中编辑模型时,它仍然会在 stuffCollection 中更改它们!

如何分离两个模型集合?

最佳答案

您将需要克隆该集合。这是一种方法。

var tempStuffCollection = new StuffCollection();
stuffCollection.each(function(model) {
  tempStuffCollection.add(new Backbone.Model(model.toJSON()));
});

关于javascript - 用于编辑模型的临时 Backbone 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16091477/

相关文章:

javascript - JS文档,[和]]在文档中是什么意思?

javascript - 通过模型属性搜索 Backbone 集合 - 正确完成

javascript - Backbone 关系中的更改事件不起作用

javascript - 为什么当我向主干模型获取添加数据选项时,它不会触发回调

javascript - Backbone-relational 不能实例化两个 RelationalModel 对象

javascript - 在 jquery ajax 上使用 history.pushstate

javascript - 如何在 Odoo 10 中应用 jquery/javascript 照片标签代码

javascript - CSS 或 jQuery 不间歇性加载

javascript - Backbone.js 将其绑定(bind)到 setInterval

backbone.js - 主干和 document.title