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

too*_*oba 0 coffeescript backbone.js

我正在使用带有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'
Run Code Online (Sandbox Code Playgroud)

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

Tre*_*ham 5

问题是该功能

$("#app")
Run Code Online (Sandbox Code Playgroud)

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

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

el: "#app"
Run Code Online (Sandbox Code Playgroud)