Marionette.ItemView渲染事件

Marionette.ItemView render event

本文关键字:事件 ItemView Marionette      更新时间:2023-09-26

我很难解释我在寻找什么,所以我将从代码开始。

我有这样的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'
    },

使得在呈现CCD_ 2时调用CCD_?

如果您想在呈现ItemView本身时运行一些代码,请使用onRender:

Marionette.ItemView.extend({
  // ...
  onRender: function() {
    console.log("Rendered the ItemView!")
  }
  //...
})

Marionette没有针对正在渲染的ItemView部分的内置事件。

@joews是对的。如果要对正在渲染的ItemView的特定部分作出反应,则应对整个ItemView的render事件作出反应。当您呈现ItemView时,它会在内存中呈现整个模板,然后将其作为一部分附加到DOM中。如果要渲染模型集合,则可以使用集合视图,并且每个ItemView都将独立渲染。

如果您想要一个使用CollectionViews和CompositeViews设置视图的示例,请查看渲染五张牌中的四张牌的小提琴,所有牌都具有随机值:http://jsfiddle.net/kjdgygy5/