我有一个问题的代码跨越多个页面,所以我会尽力发布相关内容。
我使用d3创建了一个表,点击后,我正在更改模型。我用来更改方法的方法如下 -
setSelected:()->
@set
selected:true
console.log("SELECTED CALLED")
@trigger "selected"
@
我在控制台中知道正在打印SELECTED CALLED。
现在,在我的视图的初始化函数中,我已经完成了这个 -
initialize:()->
@columnHeadings = @options.columnHeadings
@columns2Display = @options.columns2Display
@outerTable = @options.outerTable
@model.on "selected", @select()
@model.on "unselected",@deselect()
现在,选择看起来像这样 -
select:()=>
console.log "SELECTED"
console.log(@model)
从不打印SELECTED,这让我相信Backbone不知道哪个视图(每个模型有一个视图,也是'行'视图),对应于哪个模型,或者我正在制作语法错误。
由于
答案 0 :(得分:1)
当你这样说时:
@model.on "selected", @select()
@model.on "unselected", @deselect()
您正在调用@select
和@deselect
方法并将其返回值绑定到事件。括号使它们成为方法调用而不是您想要的方法引用。所以只需删除括号以绑定方法引用:
@model.on "selected", @select
@model.on "unselected", @deselect