一个骨干视图可以有多个集合吗?

11

我刚开始学习backbone,正在尝试设置一个视图,其中包含一个问题列表。在列表左侧,我有四个过滤器,可以按语言、国家、状态和研究来筛选列表。列表和每个过滤器都加载到自己的集合中。

我的想法是将这个视图作为多个集合,但我想知道这是否是backbone最佳实践,因为我看到的所有示例都只有一个视图对应一个集合。

另一个想法是将其分成两个视图,一个负责过滤器,另一个子视图仅负责问题列表。

或者,更符合backbone风格的做法是将所有集合放入一个模型中,然后像这里提到的那样将该模型传递给我的视图:http://documentcloud.github.com/backbone/#FAQ-nested

谢谢您的建议。

3个回答

24

是的,理论上一个视图可以包含任意数量的内部对象/集合。通常最好让视图尽可能独立,但也可能有理由将多个内容包裹在一个视图中。

这都是设计问题。我不明白创建一个容器模型作为您的集合桶能带给您什么好处。

不要过于担心最佳方法。有时需要走一些错误的路才能找到适合您特定项目的更好方式。


9
我认为在适当的情况下,将多个模型或集合传递给视图是完全合理的。
将一个模型或集合传递给视图构造函数将自动将该对象附加到视图实例中(因此它位于this.modelthis.collection中),但您还可以传递其他数据,例如额外的集合,它们将位于options对象中(可从视图内部访问为this.options.countries等)。如果存在,您的视图initialize方法也将传递此对象。

我过去一直使用这种方式。关于Mario说视图应该尽可能离散,我发现很难证明传递第二个集合是有必要的,例如,当视图需要它才能正确运行时。 - maletor

1

不确定最佳实践,但如果您可以将其拆分为视图,则很好。否则,最好创建一个视图模型,并在其中使用多个集合。


啊,现在我明白了你在文档中读到的关于嵌套集合部分后面所说的视图模型的含义。 - Tom Gruner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接