Отображение событий магистрали в отдельный файл класса магистрали - PullRequest
0 голосов
/ 13 декабря 2011

Я использую CoffeeScript с классом представления Backbone. Когда я включаю класс на той же странице, что и 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 Ответ

5 голосов
/ 13 декабря 2011

Проблема в том, что функция

$("#app")

запускается сразу после определения класса. Поэтому, когда класс находится в отдельном файле, элемент #app (обязательно) еще не существует в DOM.

Вместо этого вы должны использовать строку селектора, которую Backbone передаст функции $ при создании экземпляра класса:

el: "#app"
...