Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Marionette.ItemView渲染事件_Javascript_Backbone.js_Marionette_Backbone Views_Backbone Events - Fatal编程技术网

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。您能否在您的回答中显示,我如何做?提前感谢!