早上好!
我很难解释我在寻找什么,所以我将从代码开始。
我有这样的Marionette观点:
Marionette.ItemView.extend({
model: new Models.Cards(),
template: 'poker/cards',
events: {
'click player': 'playerClicked'
},
playerClicked: function( e ) {
// THIS WORKS!
}
}
我该怎么做:
events: {
'click player': 'playerClicked',
'render player': 'playerRendered'
},
以便在呈现playerRendered
时调用<player>
?
答案 0 :(得分:1)
如果要在呈现ItemView
本身时运行某些代码,请使用onRender
:
Marionette.ItemView.extend({
// ...
onRender: function() {
console.log("Rendered the ItemView!")
}
//...
})
Marionette没有为正在呈现的ItemView
的部分内置事件。
答案 1 :(得分:1)
@joews是对的。如果您想对正在呈现的ItemView的特定部分做出反应,您应该对整个ItemView的render
事件做出反应。渲染ItemView时,它会将整个模板呈现在内存中,然后将其作为一个整体附加到DOM。如果要渲染模型集合,则可以使用集合视图,并且每个ItemView将独立呈现。
如果你想要一个用CollectionViews和CompositeViews设置视图的例子,请查看这个五张牌的四手牌的小提琴,所有牌都有随机值:http://jsfiddle.net/kjdgygy5/