ItemView触发器是否会冒泡?

use*_*171 8 marionette

我有一个表的CompositeView.我在子行ItemView中为每一行设置了触发器...

var TableRow = Marionette.ItemView.extend({
    tagName: "tr",
    template: _.template($(TableTemplates).filter('#tableRow').html()),
    triggers: {
        "click td": "click:td"
    }
});
Run Code Online (Sandbox Code Playgroud)

触发器是否应该冒泡到父CompositeView?

来自文档 ......

访问这些[触发事件的视图的视图,模型和集合属性]可以更灵活地处理来自多个视图的事件.例如,选项卡控件或展开/折叠小部件(例如面板栏)可以从许多不同的视图触发相同的事件,并使用单个函数进行处理.

"单个函数"不会在父CompositeView中,以便它可以对来自其任何子ItemView的触发器做出反应吗?CompositeView如何监听ItemView触发器?

谢谢

Jes*_*uez 14

是的,他们泡了起来.

心里有唯一的一点是,当ItemView从一个叫做CompositeView或者CollectionView,该触发器将已经itemview在前缀名称,因此:

click:td将在听CompositeViewitemview:click:td

该字符串可以像这样更改:

var CV = Marionette.CollectionView.extend({
  itemViewEventPrefix: "some:prefix"
});
Run Code Online (Sandbox Code Playgroud)

所以你的触发器就是 some:prefix:click:td

编辑:在较新的版本(不确定起始版本),前缀itemview已更改为childview

更多信息:

木偶文件