Backbone.js 不使用木偶射击的事件

Backbone.js 不使用木偶射击的事件,backbone.js,marionette,ecmascript-6,Backbone.js,Marionette,Ecmascript 6,我正在使用来自木偶网的CompositeView创建一个简单页面,其中包含一个父lodash模板,该模板封装了一组模板:集合中的每个项目对应一个模板 页面正确显示,每个ItemView使用其自己的子模板正确呈现,但绑定“单击”事件无法在应用程序中的任何位置注册,即使移动到CompositeView中 我怀疑这是因为在创建元素之前绑定了事件,而元素之后没有更新。据我所知,它使用了/used.live()/.on(),但我看不出它不注册的任何其他原因 是否有方法确保使用onRender()恢复事件?

我正在使用来自木偶网的CompositeView创建一个简单页面,其中包含一个父lodash模板,该模板封装了一组模板:集合中的每个项目对应一个模板

页面正确显示,每个ItemView使用其自己的子模板正确呈现,但绑定“单击”事件无法在应用程序中的任何位置注册,即使移动到CompositeView中

我怀疑这是因为在创建元素之前绑定了事件,而元素之后没有更新。据我所知,它使用了/used.live()/.on(),但我看不出它不注册的任何其他原因

是否有方法确保使用
onRender()
恢复事件?我是否完全做错了别的事情

环境:RequireJS、BabelJS(es6)、主干1.1.2、木偶2.4.1、jQuery 1.10.2


我已经创建了非ES6:

尝试在父构造函数调用之前分配
此。在主干1.2.1+中,事件在父构造函数中的
初始化之前创建。在1.1.2中,它们是在
initialize
之后创建的,但与父构造函数的最后一项操作一样-因此,您应该在
initialize
中分配它们,或者在超级调用之前进行分配(我建议在构造函数中的超级调用之前进行分配,以便在升级时不会再次中断)

ES6中,您不能在超级调用之前使用

您可以调用
this.delegateEvents()再次出现,但这并不理想,因为它会停止侦听,然后重新侦听任何效率较低的现有事件(尽管影响可能可以忽略不计)


如果您使用的是支持es7的transpiler(例如Babel),则可以在类定义上使用es7的
static
属性;如果需要动态对象,则可以将事件设置为返回该对象的函数。

请将代码精简为一个小演示,并将其放入问题中。只要将其缩进4个空格,就可以进行语法高亮显示。链接到其他地方的代码使人们回答问题的可能性大大降低。嗯,在调用
super()
之前使用
this
是一个语法错误。