Javascript Marionette.ItemView渲染事件
我很难解释我在寻找什么,所以我将从代码开始 我有这样的木偶图:Javascript Marionette.ItemView渲染事件,javascript,backbone.js,marionette,backbone-views,backbone-events,Javascript,Backbone.js,Marionette,Backbone Views,Backbone Events,我很难解释我在寻找什么,所以我将从代码开始 我有这样的木偶图: Marionette.ItemView.extend({ model: new Models.Cards(), template: 'poker/cards', events: { 'click player': 'playerClicked' }, playerClicked: function( e ) { // THIS WORKS! } }
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'
},
我怎样才能做这样的事情:
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
?如果要在呈现ItemView
本身时运行一些代码,请使用onRender
:
Marionette.ItemView.extend({
// ...
onRender: function() {
console.log("Rendered the ItemView!")
}
//...
})
对于正在渲染的
ItemView
的部分,木偶没有内置事件 @joews是对的。如果要对正在渲染的ItemView的特定部分作出反应,则应该对整个ItemView的render
事件作出反应。渲染ItemView时,它会在内存中渲染整个模板,然后将其作为一个整体附加到DOM中。如果要渲染模型集合,则可以使用集合视图,并且每个ItemView都将独立渲染
如果您想要一个使用CollectionView和CompositeView设置视图的示例,请查看这把呈现四手五张牌的小提琴,所有牌都有随机值:您能否扩展您的问题,以包括更多关于这里发生的事情、这些对象是什么以及它们如何交互的信息?如果我有此模板:{#myplayers}{/myplayers}-所以,当呈现整个列表时,将调用玩家列表,
onRender
。换句话说,我想捕捉单个玩家项目呈现时的事件。在呈现期间,我需要在少数玩家(不是所有人)中更改css。仅在少数特定玩家中。这就是为什么我需要单人渲染事件,而不是整个列表。在这种情况下,您应该使用CollectionView,它为每个玩家渲染一个ItemView。您能否在您的回答中显示,我如何做?提前感谢!