根据我的要求,我需要在两个不同的子容器中显示两组不同的数据。
例如:
ItemView控件
var itemView = new Marionette.ItemView.extend({
template : "<%=id%><%=name%>",
model : Model,
tagName: "tr"
});
CompositeView中
Marionette.CompositeView.extend({
childView : itemView,
childViewContainer : "table.employee-table.new",
template : below html template
});
Html模板:
<div>
<table class="employee-table">
<thead>
<tr>
<th>id</th>
<th>Name</th>
</tr>
</thead>
<tbody class="new"></tbody>
<tbody class="old"></tbody>
</table>
</div>
我希望将旧员工分组到旧的(class =&#34; old&#34;)表主体中,并将新员工分组为新的(class =&#34; new&#34;)表主体。
答案 0 :(得分:0)
我没有尝试使用2个容器,但在同一个集合中有2个不同的视图,你可以通过覆盖Marionette.CompositeView中的 getChildView 函数来实现
class Notifications extends Marionette.CompositeView
template: require './templates/player_notifications'
childView : Notification
childViewContainer : "#caption"
modelEvents:
"sync" : "render"
getChildView: (item) ->
if (item.get('type') == "notification:payment")
PaymentNotification
else if (item.get('type') == "notification:player:connected")
PlayerConnectedNotification
else if (item.get('type') == "notification:player:discovered")
PlayerDiscoveredNotification
else
Notification
class Notification extends Marionette.ItemView
template: require './templates/player_notification'
class PaymentNotification extends Marionette.ItemView
template: require './templates/payment_notification'
class PlayerConnectedNotification extends Marionette.ItemView
template: require './templates/player_connected'
class PlayerDiscoveredNotification extends Marionette.ItemView
template: require './templates/player_discovered'
以同样的方式在Marionette.CompositeView中有一个 getChildViewContainer 函数,您可以覆盖它。
或者只需在Backbone.Collection中的fetch中将你的集合拆分为2。