【发布时间】:2011-09-17 11:27:21
【问题描述】:
我正在使用 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;
},
这里的区别在于他们通过删除实际模型来做到这一点。并且该模型的视图会侦听删除视图的销毁事件。
我想保留模型。
解决此问题的最佳方法是什么。我是否需要在模型中存储对其视图的引用,然后遍历模型并删除视图?
如果我想过滤模型中的属性,有没有更好的方法?
【问题讨论】:
标签: javascript filter views backbone.js