У меня есть магистральный IndexView, который вызывает TaskView для каждой модели «задачи».Я хотел бы связать событие с элементом li, который оборачивает представление задачи.Так, например, атрибут «className» - это «задача», и я хочу вызвать событие в «.task».
Я могу выполнить привязку из родительского представления (IndexView), но мне нужен доступк информации внутри щелчкового представления, которое, как я предполагаю, означает, что событие должно быть связано с дочерним TaskView (?)
(Кроме того, классы DOM внутри могут иметь доступ к фактическому шаблону задач... только не оберточный*
class Backbonescaffolddemo.Views.Tasks.TaskView extends Backbone.View
template: JST["backbone/templates/tasks/task"]
tagName: "li"
className: "task"
events:
"click .task" : "demoMethod"
initialize: () ->
_.bindAll(this, 'demoMethod', 'render')
console.log @
#@showTask()
@el.id = 'sort_order_' + @model.get('id') if @model
destroy: () ->
@model.destroy()
this.remove()
return false
demoMethod: () ->
console.log 'Work dammit, work. Arghhh'
render: ->
$(@el).html(@template(@model.toJSON() ))
return this
РОДИТЕЛЬСКИЙ ВИД
Backbonescaffolddemo.Views.Tasks ||= {}
class Backbonescaffolddemo.Views.Tasks.IndexView extends Backbone.View
template: JST["backbone/templates/tasks/index"]
id: "taskList"
events:
"keyup #searchTasks" : "searchTasks"
initialize: () ->
_.bindAll(this, 'addOne', 'sortable', 'task_id_from_element', 'addAll', 'searchTasks', 'updateSort', 'sortable', 'render')
@options.tasks.bind('reset', @addAll)
@options.tasks.bind('reset', @sortable)
@options.tasks.bind('add', @render)
@updateSort()
@sortable()
#...
addAll: () ->
@options.tasks.each(@addOne)
addOne: (task) ->
view = new Backbonescaffolddemo.Views.Tasks.TaskView({model: task})
$(@el).append(view.render().el)
render: ->
$(@el).html(@template(tasks: @options.tasks.toJSON() ))
@addAll()
return this