我使用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