2013-03-20 85 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