行をクリックすると、サイド div に詳細が表示されるテーブルがあります。その行がクリックされるたびに発生する行 (tr) にイベントを作成しました。私が抱えている問題は、イベントが複数回発生していることです。イベントが発生するたびに新しいビューが作成されているかのように動作していますが、新しいビューは作成されていません。コードは次のとおりです。
GroupView = class App.GroupView extends Backbone.View
template: App.Utils.getTemplate 'group'
selectedId: 0
events:
'click tr': 'selectGroup'
selectGroup: (e) ->
thisEl = $(e.currentTarget)
$(thisEl).closest('tr').siblings().removeClass 'selected'
$(thisEl).closest('tr').addClass 'selected'
@selectedId = $(thisEl).data().id
@getGroupDetails @selectedId
render: ->
$(@$el).html @template
groups: @collection.models
if @selectedId is 0
firstRowEl = $(@$el).find('tr:first')
$(firstRowEl).addClass 'selected'
@selectedId = $(firstRowEl).data().id
@getGroupDetails @selectedId
getGroupDetails: (id, platform) ->
$('<img/>',
src: 'img/ajax_loader_2.gif'
class: 'ajax-loader'
).appendTo '.group-details'
renderGroupDetails id
groupDetails = new GroupDetailsView
el: '.group-details'
model: groupDetailsModel
renderGroupDetails = (id)->
groupDetails.el = '.group-details'
groupDetails.stopListening groupDetailsModel
groupDetails.listenTo groupDetailsModel, 'change', ->
groupDetails.model =
groupDetails: groupDetailsModel.toJSON()
groupDetails.render()
groupDetailsModel.fetch
data:
id: id
processData: true
問題は、を使用するgroupDetails.stopListening groupDetailsModel
と、複数のイベントの発生の問題は解決されますが、groupDetails
ビュー内のイベントはどれも発生しないということです。
どんな助けでも大歓迎です。
乾杯、
キアノシュ