我正在使用带有Backbone视图类的CoffeeScript。当我将该类包含在与html相同的页面中时,一切正常。当我使用单独的文件并导出类时,它会初始化但事件未映射。
类文件是:
root = exports ? this
class root.AppView extends Backbone.View
el: $("#app")
events:
'click #appBtn1' : 'handleEvent'
'click #appBtn2' : 'handleEvent'
initialize: =>
alert 'init'
handleEvent: =>
alert 'event'
只有初始化函数触发。当代码在单独的类中时,我需要更改以映射事件?
答案 0 :(得分:5)
问题在于功能
$("#app")
在定义类时立即运行。因此,当该类位于单独的文件中时,#app
元素尚未(必然)存在于DOM中。
你应该做的是使用选择器字符串,当实例化类时,Backbone将传递给$
函数:
el: "#app"