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