我正在使用Backbone.Marionette并需要呈现员工及其各自部门的视图。我希望它看起来像这样:
Department 1
***
Employee1
Employee2
Employee3
Department 2
***
Employee4
Employee5
Employee6
Employee7
Employee8
Department 3
***
Employee9
Employee10
我的收藏如下:
Employee1 / Department1
Employee2 / Department1
Employee3 / Department1
Employee4 / Department2
Employee5 / Department2
etc.
随着department
更改,我需要呈现department
标题。
我将使用哪种视图类型组合。 Collection view
,Composite view
。我需要在视图/模板中放置逻辑吗?
答案 0 :(得分:2)
最终结果可以很容易地分解,以确定要使用的视图类型。
您有一系列要渲染的部门。 CollectionView
会处理这个问题,允许每个部门自己渲染。
该部门本身有复杂的需求。它需要显示标题(部门名称)和一些详细信息 - 员工列表。这听起来像一个带有包装器模板的集合视图......一个CompositeView。
然后,每个部门的复合视图都需要呈现员工列表。员工信息似乎相当简单,因此ItemView就足够了。
最终结果将是:
CollectionView
- CompositeView (department)
- ItemView (employee)
...当然,您的实际数据结构对于此布局效果不佳,因为您将关系转换为员工知道其所属部门的位置。您可能需要反转数据/关系,以便部门知道他们在服务器上有哪些员工/返回JSON,或者做一些客户端过滤和分组以获得该结果。