2011-04-29 105 views
11

我刚刚开始与骨干,并试图建立一个有问题清单的视图。在列表的左边我有四个过滤器,按语言,国家,地位和学习过滤列表。列表和每个过滤器都被加载到它们自己的集合中。骨干视图可以有多个集合吗?

我的想法是让这个视图具有多个集合,但是我不知道这是否是主干中的最佳实践,因为我看过的所有示例只有一个视图集合。

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

或者是更骨干的风格所有的藏品放到一个模型,然后该模型传递给我的看法就像它提到这里:http://documentcloud.github.com/backbone/#FAQ-nested

感谢您的想法。

回答

24

是的。理论上,视图可以包含任意数量的内部对象/集合。通常意见尽可能离散,但可能有理由在单个视图中包含多个事物。

这都是设计问题。我没有看到创建一个容器模型作为您的集合的一个存储桶购买的东西。

不要太在意绝对最好的方式。有时候需要走错一步,找出适合您特定项目的更好方法。

1

不确定的最佳做法,但如果你能把它分解成视图,那么它的好处。否则,您最好创建一个包含多个集合的视图模型,并在视图中使用它们。

+0

啊,现在我在阅读文档中的嵌套收集位之后,明白您对视图模型的含义。 – 2011-04-29 14:04:18

9

我认为在合适的时候将多个模型或集合传递给视图是完全合法的。

传递一个modelcollection到视图构造函数会自动添加该对象的视图实例(因此它在this.modelthis.collection),但你也可以通过其他数据如额外的集合,它们将被设在options对象(可从您的视图中获得this.options.countries等)。你的观点initialize方法,如果存在的话,也会传递这个对象。

+0

我一直都是这样用过去的。关于马里奥说视图应该尽可能离散,我觉得证明传入第二个集合是有挑战性的,例如,当视图要求正确运行时作为选项。 – maletor 2013-09-20 16:50:01