2013-03-20 72 views
3

我试图将应用程序转换为Backbone Marionette,并且遇到了呈现每个包含多个子集合的项目集合的问题。使用多个子集合呈现集合

背景:

我的工作地址簿应用,主要是为我自己的熏陶,而且使用别人的希望。此应用程序的主屏幕显示用户联系人列表。这些联系人中的每一个都由支持它的单个模型的视图表示。每个模型都有附加的关系信息,作为模型属性的集合存储。也就是说,电话号码和电子邮件地址均作为每个联系人的集合存储。这些关系全部由Backbone Relational和它是好的。

问题:

我试图将联系人视图从Backbone.View转换成木偶的时候首先想到的是用Backbone.Marionette.CompositeView,但复合视图只需要一个单一的集合。渲染具有多个集合的重复项目的正确方法是什么?

+0

难道他们真正需要的是德里克的博客的POST收藏?这种方法听起来有些过度设计。电话号码是否有API终端?他们实际存储Backbone模型还是只存储Javascript基元? – 2013-03-20 17:10:27

+0

他们实际上是骨干模型。每个人都有其他信息,否则他们只是直接在父模型上的字段。我敢肯定,我需要的是对如何使用木偶的思维方式进行更多的调整。 – 2013-03-20 17:52:57

+0

复合视图不会为您给出的原因而工作,但您可以轻松制作一个管理多个CollectionView实例的ItemView。这基本上是CompositeView的功能。 – 2013-03-21 15:08:30

回答

4

我写了一个类似的问题一个博客帖子。关键是使用复合视图来渲染集合,并为其提供另一个合成视图作为“itemView”属性来渲染嵌套集合。

工作代码:http://davidsulc.github.com/backbone.marionette-nested-views/

博客文章:http://davidsulc.com/blog/2013/02/03/tutorial-nested-views-using-backbone-marionettes-compositeview/

代码回购:https://github.com/davidsulc/backbone.marionette-nested-views

注意:您还可以看到嵌套视图http://lostechies.com/derickbailey/2012/04/05/composite-views-tree-structures-tables-and-more/

+0

这似乎涵盖了复合视图的普通用法。为了从链接的博客文章扩展示例,我想显示一个城市(这将是CompositeView的ItemView部分)并显示附加到该ItemView的两个集合,因为该城市拥有一系列英雄和一系列恶棍。那是两个不同的集合。在阅读完一堆代码后,看起来好像最好的方式是使用CityView的ItemView,并在该城市的onRender回调中放置一些代码,以创建并呈现Heroes CollectionView,并为Villains渲染另一个Heroes CollectionView。 – 2013-03-25 22:12:02