有沒有辦法輕鬆克隆骨幹集合?我想知道爲什麼沒有像模型一樣構建方法。我的問題是,我有一個模型拿着孩子的集合。當我克隆模型。我仍然收集孩子,但只有他們的默認值。如何克隆主幹集合
如何克隆主幹集合
回答
你想要克隆該集合的用例是什麼?
集合中沒有內置的克隆功能,因爲您不想克隆集合中的模型。克隆一個模型會導致同一個模型有兩個單獨的實例,如果你更新了一個模型,另一個將不會被更新。
如果您想基於特定條件創建新集合,那麼您可以使用該集合的過濾方法。
var freshmenModels = studentsCollection.filter(function(student) {
return student.get('Year') === 'Freshman';
}
var freshmenCollection = new Backbone.Collection(freshmenModels);
要繼續前進,克隆集合中的模型,你可以寫下面的代碼
var clonedCollection = new Backbone.Collection();
studentsCollection.each(function(studentModel) {
clonedCollection.add(new Backbone.Model(studentModel.toJSON()));
});
另一種選擇,如果你需要以下(這是我一直在尋找,當我發現這個問題;)):
- 集合的副本應該是相同類型與原始採集的(例如,你已經創建了一個擴展Backbone.Collection自己的集合型)
- 集合的副本應與相同的選項集合的副本原
- 的模型來創建應使用model.clone()方法創建
代碼:
var models = original.map(function (model) { return model.clone(); });
var options = _.clone(original.options);
var copy = new original.constructor(models, options);
Backbone.Collection上的泛型克隆方法會很棘手,因爲模型及其嵌套對象是否通過引用被複制或者自身被克隆總是存在細微之處。根據你的情況,需求會有很大的變化,所以你只需要寫出你需要的東西。
最簡單的方法:
var cloned = new Backbone.Collection(original.toJSON());
其中original
是克隆的集合。
總是可以擴展Backbone的Collection
以添加克隆支持w或w/o繼承支持。
這是一個很好的答案,因爲它會執行深度克隆,這意味着它也會克隆模型。如果您更喜歡淺色克隆,其中新集合將指向相同的模型實例,請使用下面的Craig Myles的答案。 – Dre 2015-09-10 23:21:35
模型具有方法時不適用 – OlehZiniak 2018-01-31 14:42:44
使用Backbone Collection clone()方法:
var clonedCollection = myCollection.clone();
它克隆集合的鏈接,因此myCollection中的更改將遵循clonedCollection中的更改 – 2015-02-24 14:14:37
- 1. Magento如何克隆自定義集合
- 2. Java集合克隆操作
- 3. 如何克隆克隆字段集內的字段集jQuery
- 4. 如何克隆骨幹模型
- 5. 如何使用主幹渲染集合?
- 6. 如何克隆從骨幹收集模式到另一個
- 7. 骨幹深克隆問題
- 8. 實例化集合主幹
- 9. 主幹嵌套集合
- 10. 主幹分割集合
- 11. jqueryui.sortable和主幹集合
- 12. 主幹集合樹創建
- 13. 克隆集合成員匹配條件
- 14. 克隆包括實型的集合
- 15. 在MongoDB中克隆一個集合
- 16. 數據集克隆
- 17. 如何從github中克隆WordPress主題
- 18. Team Foundation Server:將集合的項目克隆到新集合中
- 19. 如何使用http來克隆克隆?
- 20. 如何批量克隆克隆
- 21. Morphia。如何克隆不同集合的查詢(種類)
- 22. git克隆到主目錄
- 23. 骨幹集合 - 如何過濾與其他集合的集合?
- 24. 克隆骨幹模型屬性
- 25. 如何克隆FormattedText?
- 26. 如何克隆jtable
- 27. 如何克隆mysql_result
- 28. 克隆CVPixelBuffer - 如何?
- 29. 如何克隆TextView?
- 30. 如何克隆RectangleF
但我想複製所有單一車型的收藏。 – 2011-12-21 22:30:33
你想要做什麼,你需要複製/克隆集合中的所有模型? – Paul 2011-12-22 00:20:44
我有一堆產品,可以有一個子產品列表。所以當有些人把他們放在籃子裏時,我必須複製所有的副產品。用戶可以更改產品本身和子產品的數量。所以我需要一份原件在籃子裏。 – 2011-12-22 08:07:38