在骨干集合视图中按月分组项目?

时间:2012-09-03 07:49:43

标签: collections backbone.js

我的骨干应用程序中有一个简单的文档集合。此集合的视图包含所有文档,应按创建月份进行分组。

此视图必须实时更新 - 当我创建新文档或修改现有文档时,应将其添加/移动到视图中的正确位置。

实现这一目标的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

Backbone集合有很多方法,包括groupBy。这可用于对您的收藏进行分组。

视图必须侦听reset事件的集合,因此如果集合重置(意思是,它已分组并更新),视图必须相应地更新DOM。最简单的解决方案,只需完全重新渲染视图。如果需要,您可以进行一些优化

答案 1 :(得分:0)

您应该为集合创建comparator方法(使用groupBy,如前一个答案所建议的,或任何其他适合您需要的方法)。然后,每当触发“添加”,“删除”或“重置”事件时,您的集合应该触发渲染方法,以便“实时”更新视图。

例如,在您的views initialize方法中,一种方法是:

  collection.documents.on "add", @render
  collection.documents.on "remove", @render
  collection.documents.on "reset", @render

比较法的目的正是为了使收集元素始终保持分类。