Я пытаюсь прослушать, когда функция «attachmentClicked» моего представления вызывается в другом объекте. Вот класс, который первоначально вызывает событие:
class AttachmentView extends AttachmentViewerView
template: _.template($('#AttachmentViewTemplate').html())
className: "attachmentView"
#
# initialize ->
#
initialize: ->
console.log "AttachmentView initialized"
@render()
events: {
'click' : 'attachmentClicked'
'dblclick' : 'openAttachment'
}
#
# render ->
#
render: ->
@$el.html(@template(@model.toJSON()))
$('div.attachmentViewerView').append(@el)
# @bind 'event', method
#
# attachmentClicked ->
#
attachmentClicked: ->
@$el.addClass('selectedAttachmentView')
этот объект вызывает attachmentClicked
при щелчке, теперь в другом классе, который создал этот объект, я пытаюсь прослушать это событие. Вот этот класс
class AttachmentViewerView extends AttachmentAppController
template: _.template($('#AttachmentViewerTemplate').html())
className: "attachmentViewerView"
#
# initialize ->
#
initialize: (options) ->
console.log "AttachmentViewer initialized"
@office = options.office
@ticket = options.ticket
@attachmentViews = []
@render()
#
# render ->
#
render: ->
@$el.html(@template())
# Append to fileViewer Div
$('#attachmentViewerWindow').append(@el)
@renderFiles()
#
# bindEvents ->
#
bindEvents: (view) ->
@listenTo view, 'attachmentClicked', @attachmentClicked
#
# renderFiles ->
#
renderFiles: ->
@attachments = new AttachmentCollection({@office, @ticket})
@attachments.fetch({
success: (collection) =>
_.each collection.models, (model) =>
# Create the attachment views and bind events right away
@bindEvents new AttachmentView({model: model})
})
#
# attachmentClicked ->
#
attachmentClicked: (attachment) ->
console.log( @ )
@$el.find('.selectedAttachmentView').removeClass('selectedAttachmentView') unless @selected == attachment
@selected = attachment
так что происходит то, что когда этот класс создается, он в конечном итоге вызывает renderFiles, который извлекает файлы с сервера, затем создает представление для каждой возвращаемой модели и вызывает bindEvent с этим параметром.
Затем bindEvent пытается прослушать метод attachmentClicked этого вновь созданного элемента и связать его с функцией attachClicked этого класса. Однако это не работает. Я пробовал несколько способов и не уверен, в чем моя проблема. Мы будем очень признательны за руководство.