假设我有一个名为Item
的backbone.js模型存储在ItemCollection
中。鉴于Item
具有属性date
,分区ItemCollection
的最佳方法是什么,以便共享相同日期的所有项目最终都在同一分区中?
最终,分区数据结构应该返回一个(backbone.js)视图,该视图应该呈现按日期分组的项目。
最好的办法是什么?
到目前为止,我考虑了
在呈现索引视图时动态提取分区,但这可能会破坏骨干基于事件的机制的优雅,以呈现集合/模型更新。
将每个分组标头表示为Header
模型的实例,并将一个集合与其分区相关联。我会以某种方式将附加到Header
实例的分区与主ItemCollection
同步,但这可能通过主干的事件机制来管理。
这些方法中的任何一种都有意义吗?还有其他想法吗?
P.S。:我的后端数据模型中不存在分组结构(我想避免引入它),所以这是一些需要在客户端即时发生的映射
答案 0 :(得分:1)
看起来你的两个选项的混合可行。我可能会按如下方式处理:
Header
模型(更具描述性),而不是ItemGroup
,它会在Item
内部呈现collection
,这将是一个分区较大的ItemCollection
。AppView
。在AppView#render
中,根据需要对数据进行分区。 (您没有明确要求如何对数据进行分区,但您可以使用Underscore在几行代码中执行此操作。)AppView#render
绑定到add
的{{1}}和remove
事件,这样无论何时添加新项目,分区都会重新呈现。