Backbone JS - View是否应该保存Collection?还是模特?

时间:2012-11-07 10:30:36

标签: javascript backbone.js marionette

View应该保留Collection(模型),还是Model

标准方法是什么?这是一个通用的问题,我没有具体的应用示例,但可能的答案是它取决于具体情况?

到目前为止我们的少量工作有模特举行收藏。只是阅读关于木偶及其观点,documentation似乎暗示木偶假设视图有收藏。

思想?

2 个答案:

答案 0 :(得分:3)

模型不应该包含集合,除非集合是与该模型的关系的属性或涉及该模型的关系。我在你的问题中假设,当你说收藏时,你实际上是指你也谈论的模型的集合。

我建议的方法是定义一个呈现单个模型的视图,然后定义一个存储该集合的封闭视图,并为该集合中的每个模型呈现单独的视图。

修改:为清楚起见,当我说封闭时,我的意思是在DOM级别,但不在您的定义范围内。

这意味着您可以随时轻松地渲染整个集合,但您也可以在集合中添加或修改单个模型,只需渲染该模型的个人视图。

答案 1 :(得分:1)

如果合适的话,视图会包含一系列模型,这对我来说是有意义的。例如,histogramView可以包含一组数据点,这些数据点具有自己的模型dataPoint。然后histogramView可以访问该集合并一次性渲染所有内容。

当然,如果视图只需要拥有一个模型,那么这也是可以接受的。对于用户配置文件视图,您可能希望视图拥有userInformationModel。