У меня есть контейнер .js-todoslist
для списков дел. Также у меня есть несколько просмотров TodosListView
для каждого списка задач. Все TodosListView
создаются из родительского представления и связаны с одним и тем же el .js-todoslist
.
Списки Todos не отображаются при инициализации, мне нужно отображать разные списки Todos, нажимая кнопки, чтобы каждый список имел showTodolist
метод, который его показывает.
Проблема в том, что на данный момент можно отобразить только один список, все из них фактически инициализированы. И когда я нажимаю .add-btn
в отображаемом списке, все списки имеют срабатывающую функцию add
(а не только текущие отображаемые).
TodosListView = Backbone.View.extend
events:
"click .add-btn": "add"
initialize: (options) ->
self = this
@model = @options.model
# I've tried to undelegate event after initialize, but no luck
# @$el.undelegate('.add-btn', 'click');
# @undelegateEvents()
# show this todolist
showTodolist: ->
@$el.html @template(@model.toJSON())
render: ->
@
add: ->
console.log "Add to Todos list #" + @model.get("id")
Как этого избежать (кроме создания разных представлений для каждого списка)? Спасибо.
showTodolist
использовать setElement для указания свойства el? - person f1nn   schedule 03.05.2014