これは古い質問ですが、@ nikoshrとこの回答が役に立ちましたので、貢献を追加したいと思います。
私の場合、ネストされたコレクションを含むモデルのクローンを作成する必要がありました。
app.Collections.collection1 = Backbone.Collection.extend({
model: app.Models.model1,
clone: function() {
return new this.constructor(_.map(this.models, function(model) { var clone = model.clone().unset('id', {silent: true}).unset('idAttribute', {silent: true}); return clone.set('collection2', clone.get('collection2').clone()); }));
}
});
app.Collections.collection2 = Backbone.Collection.extend({
model: app.Models.model2,
clone: function() {
return new this.constructor(_.map(this.models, function(model) { return model.clone().unset('id', {silent: true}).unset('idAttribute', {silent: true}); }));
}
});
var clone = this.model.clone().unset('id', {silent: true}).unset('idAttribute', {silent: true});
clone.set('collection1', clone.get('collection1').clone());
var copy = this.model.collection.add(clone, {parse: true});
だからあなたの場合、私はあなたがそのようなことをすることができると思います:
app.Collections.collection1 = Backbone.Collection.extend({
clone: function() {
return new this.constructor(_.map(this.models, function(model) { return model.clone().unset('idAttribute', {silent: true}); }));
}
});
collection2.add(collection1.clone().models);