将骨干事件映射到单独的骨干类文件中

时间:2011-12-13 18:56:35

标签: backbone.js coffeescript

我正在使用带有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'

只有初始化函数触发。当代码在单独的类中时,我需要更改以映射事件?

1 个答案:

答案 0 :(得分:5)

问题在于功能

$("#app")

在定义类时立即运行。因此,当该类位于单独的文件中时,#app元素尚未(必然)存在于DOM中。

你应该做的是使用选择器字符串,当实例化类时,Backbone将传递给$函数:

el: "#app"