如果在初始化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. 集合中的更改/更新模型
- 3. 圖表更改後如何獲取更新後的模型?
- 4. 如何更新集合中的模型?
- 5. 在ATK4中,我如何修改模型以獲得DISTINCT列表
- 6. 如何使用鋰的PHP框架與枚舉列表的集合和更改模型中的集合
- 7. Backbone新手:如何從集合中獲得第一個模型?
- 8. 如何獲得集合的空列表?
- 9. 如何迭代模型中的集合到無序列表?
- 10. 如何在創建目標表後發生「模式更改」錯誤?
- 11. 如何從集合中的模型列表中獲取某個屬性?
- 12. 如何獲得上回發的視圖模型子集合在MVC3?
- 13. 如何在更改模型後驗證模型的狀態
- 14. 獲取_wrapped_view()發生在創建模型
- 15. 更新集合中的模型
- 16. 更新集合中模型的索引
- 17. 如何以模擬模型的列Rails的集合3
- 18. Backbone JS - 更新嵌套子模型更改上的父模型集合
- 19. Rails:如何從模板集合創建新的關聯模型
- 20. Drupal的:如何獲得模塊列表
- 21. Backbone模型中的集合
- 22. 流明如何從模型集合構建序列化結構?
- 23. 如何合併集合以獲得相同的文檔模式?
- 24. 如何在集合中移動模型?
- 25. 如何獲得模型中的對象?
- 26. 如何獲得模型中的參數?
- 27. 模板不更新後模型改變
- 28. Angular如何在模型值更改後觸發複選框的更改事件?
- 29. 如何創建包含查詢模型列表的模型?
- 30. 如何更新集合中的所有模型 - Backbone.js