我使用Backbone.js呈現具有不同狀態的項目列表(電子郵件收件人),例如。確認,待定等。列表呈現後,用戶可以選擇過濾它們,以便用戶可以列出所有收件人,或僅列出已確認的收件人等。該項目(收件人)的自然存儲在一個集合中..Backbone.js:清除所有視圖的最佳方法
我的做法是在過濾事件:
- 清除所有項目的視圖的
- 從應用程序中查看通話一個filterOnStatus功能集合中返回所有模型並將它們添加到視圖中。
第2步工作正常。但清除館藏視圖上所有項目的最佳方法是什麼?
在Todo示例應用程序(http://documentcloud.github.com/backbone/examples/todos/index.html)中,它們執行類似操作。在應用程序視圖中,以下代碼用於清除列表中的所有已完成項目。
clearCompleted: function() {
_.each(Todos.done(), function(todo){ todo.destroy(); });
return false;
},
這裏的區別是,他們通過去除實際模型做到這一點。該模型的視圖監聽它們刪除視圖的銷燬事件。
我想保留模型。
解決此問題的最佳方法是什麼?模型中是否需要存儲對其視圖的引用,然後迭代模型並刪除視圖?
如果我想過濾模型中的屬性,是否有更好的方法?
但是用這種方法我跟蹤了我的視圖(每個列表項都是一個視圖)。沒有? – Sebastian
你的意思是什麼意思?你爲什麼要保留它? –
我的意思是視覺對象,記憶方面。我沒有調用view.remove();在上面。但是你說從DOM中刪除DOM表示會自動刪除骨幹視圖? – Sebastian