Я не думаю, что это необычная проблема, но я не смог найти ни одного решения, которое нашел работу. Вот мой [упрощенный] вид:
class MyView extends Backbone.View
el: '#mydiv'
initialize: ->
@collection.bind 'reset', @render, @
render: ->
$(@el).html('my content')
Когда срабатывает reset
, render
's this
был перекрыт, а @el
равно undefined
. Насколько я понимаю, 3-й параметр bind
должен был позаботиться об этом, но, похоже, этого не происходит. Я использую Backbone 0.5.3.
Я также пытался использовать «жирную стрелку» на рендере, но это тоже не сработало:
render: =>
$(@el).html('my content')
Обновление
Как указал Тревор Бернхем ниже, это не было проблемой с ограничением объема, это было то, что мое свойство el
не было доступно при загрузке страницы (оно было создано позже). Я все еще ищу лучший способ справиться с этим (используя свойство id
в представлении).