繁体   English   中英

对ribs.js集合的项目进行分区(用于分组渲染)

[英]Partitioning items of a backbone.js collection (for grouped rendering)

假设,我有一个名为Item的骨干ItemCollection模型,该模型存储在ItemCollection 给定Item具有一个属性date ,对ItemCollection进行分区的最佳方法是什么,以使共享相同日期的所有项目都位于同一分区中?

最终,应该将分区的数据结构返回到一个(backbone.js)视图,该视图应该呈现按日期分组的项目。

最好的方法是什么?

到目前为止,我认为

  1. 在呈现索引视图时动态提取分区,但这可能会破坏主干基于事件的机制来呈现集合/模型更新的优雅。

  2. 将每个分组标题表示为Header模型的实例,并将集合及其分区附加到该模型。 我将需要以某种方式使附加到Header实例的分区与主ItemCollection保持同步,但这可能可以通过主干的事件处理机制进行管理。

这些方法有道理吗? 还有其他想法吗?

PS:分组结构在我的后端数据模型中不存在(我想避免引入它),因此这是一些需要在客户端动态进行的映射

您似乎可以同时使用这两个选项。 我可能会这样处理:

  1. 除了Header ,您还可以使用ItemGroup模型(更具描述性),将Item呈现在其collection的内部,该collection将是较大ItemCollection的分区。
  2. 当您渲染父视图(我称为AppView时,可以完成分区本身。 AppView#render ,根据需要对数据进行分区。 (您没有明确询问如何对数据进行分区,但是可以使用Underscore在几行代码中完成此操作。)
  3. AppView#render绑定到ItemCollectionaddremove事件,以便无论何时添加新项目,分区都会自行重新渲染。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM