如果在初始化dialogview時使用模型屬性的對象數組初始化集合。然後,允許用戶編輯列表的對話框視圖通過調用模型集來更新這些模型值。當單擊對話框的OK按鈕時,backbone是否提供了一種方法來獲取自從創建/初始化集合以來僅更改了那些模型的列表?如何獲得集合中建模後發生更改的模型列表
1
A
回答
3
有看起來誘人的各種模型方法:
但是,不要被愚弄,那些只適用而"change"
事件正在tr iggered:
所以他們沒用在事件發生後已被觸發和處理。
我認爲你必須跟蹤哪些模型已經改變了你自己。你可以自
集合本身做這個沒有太多精力和收集可以綁定到其自己的事件。例如,你可以有這樣的事情在您的收藏:
Backbone.Collection.extend({
initialize: function() {
this.delta = { };
this.on('change', this._a_model_has_changed);
},
changed_models: function() {
return _.chain(this.delta).values();
},
_a_model_has_changed: function(m) {
this.delta[m.id] = m;
}
});
然後,你可以得到那些通過調用collection.changed_models()
改變的車型。您還希望監聽其他事件,以便在模型被刪除或與服務器同步時更新此.delta;以上僅供說明。如果你不想一個下劃線對象返回你也可以使用這樣的:
changed_models: function() {
return _(this.delta).values();
}
但能夠collection.changed_models().each(function() { ... })
方便。
演示:http://jsfiddle.net/ambiguous/8PQh9/
你也可以讓模型通過對模型的一組類似的追蹤自己的骯髒。然後,你可以做這樣的事情:
collection.filter(function(m) { return m.is_dirty() });
其中,當然,is_dirty
假若該模型已經改變返回true。
相關問題
- 1. 刷新集合後,如何獲取更改的模型?
- 2. Backbone.js:獲取集合後引發模型更改事件?
- 3. 在Backbone.js中,在集合下創建模型後,如何更新該模型?
- 4. 圖表更改後如何獲取更新後的模型?
- 5. 如何更新集合中的模型?
- 6. 在ATK4中,我如何修改模型以獲得DISTINCT列表
- 7. 集合更改時如何獲得UIElement?
- 8. 如何使用鋰的PHP框架與枚舉列表的集合和更改模型中的集合
- 9. Backbone新手:如何從集合中獲得第一個模型?
- 10. 如何獲得集合的空列表?
- 11. 我如何獲得Propel模型的所有集合?
- 12. 模型中的列表集合不回發給控制器
- 13. 如何迭代模型中的集合到無序列表?
- 14. 如何通知viewmodel集合模型類的屬性已更改
- 15. 如何在創建目標表後發生「模式更改」錯誤?
- 16. 從集合更新模型
- 17. 如何從集合中的模型列表中獲取某個屬性?
- 18. 如何獲得上回發的視圖模型子集合在MVC3?
- 19. Java Swing:列表模型和集合
- 20. 如何在更改模型後驗證模型的狀態
- 21. 獲取_wrapped_view()發生在創建模型
- 22. 更新集合中模型的索引
- 23. 更新集合中的模型
- 24. 從模型列表中獲取模型
- 25. 如何以模擬模型的列Rails的集合3
- 26. Backbone:如何從另一個模型中的集合中獲取模型屬性?
- 27. 在MVC3中如何獲得Linq的模型列表?
- 28. Rails:如何從模板集合創建新的關聯模型
- 29. 更新列表 - 查看模型更改
- 30. Backbone JS - 更新嵌套子模型更改上的父模型集合