我的主干应用程序中有一个简单的文档集合。这个集合有一个包含所有文档的视图,它们应该按创建的月份分组。
此视图必须实时更新 - 当我创建新文档或修改现有文档时,应将其添加/移动到视图中的正确位置。
实现这一目标的最佳方法是什么?
我的主干应用程序中有一个简单的文档集合。这个集合有一个包含所有文档的视图,它们应该按创建的月份分组。
此视图必须实时更新 - 当我创建新文档或修改现有文档时,应将其添加/移动到视图中的正确位置。
实现这一目标的最佳方法是什么?
Backbone 集合有很多方法,包括groupBy。这可用于对您的收藏进行分组。
视图必须监听reset
集合事件,所以如果集合重置(意味着它被分组和更新),视图必须相应地更新 DOM。最简单的解决方案,只是完全重新渲染视图。如果需要,您可以进行一些优化,
您应该为您的集合创建一个比较器方法(使用 groupBy,如上一个答案所建议的那样,或任何其他适合您需要的方法)。然后,您应该让您的集合在每次触发“添加”、“删除”或“重置”事件时触发渲染方法,以便“实时”更新视图。
例如,在您的视图初始化方法中,一种方法是:
collection.documents.on "add", @render
collection.documents.on "remove", @render
collection.documents.on "reset", @render
比较器方法的目的正是使集合元素始终保持排序。