我正在尝试从 Backbone 视图中使用 D3 渲染事物。但是,我的事件没有触发,我认为这是因为我正在渲染以响应侦听由我的模型触发的事件。
class TableView extends Backbone.View
el : 'body'
tableId : ''
columns : ''
thead : ''
tbody : ''
input : ''
rows : ''
inputId : ''
initialize:()->
@model.bind "render", @render
@tableId = "resultsTable#{@options.id}"
@inputId = "filterInput#{@options.id}"
@columns = @options.columns
@el = 'body'
destroy:()->
@undelegateEvents()
render:()=>
@table = d3.select(@el).append("table").attr("id",@tableId)
.attr("class","visualization-panel")
@thead = @table.append("thead")
@tbody = @table.append("tbody")
@input = @table
.append("input")
.attr("id",@inputId)
@thead
.append("tr")
.selectAll("th")
.data(@columns)
.enter()
.append("th")
.text((col)->return col)
.attr("class","col-heading")
@tbody
.selectAll("tr")
.attr("class","spacing center-text")
@_renderTableBody()
_renderTableBody:()=>
@rows = @tbody
.selectAll("tr")
.data(@model.data.models)
.enter()
.append("tr")
@rows
.selectAll("td")
.data((model)=> return @columns.map((column)=> return {column : column, val : model.get(column)}))
.enter()
.append("td")
.text((d)=>
for column in @columns
if d.column == column
return d.val
)
sort:()=>
console.log "what was clicked"
console.log @
test:()=>
console.log "please console"
events :
"click .col-heading" : "sort"
"click #filterInput0" : "test"
为什么这些事件没有触发?我如何让它们着火?我知道他们没有触发,因为控制台日志没有触发。