2013-05-14 105 views
0

我有一个问题的代码跨越多个页面,所以我会尽我所能发布相关内容。骨干事件触发器未被拾取。

我已经使用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不知道哪个视图(每个模型有一个视图,也是'行'视图),对应于哪个模型,或者我正在犯一个语法错误。

感谢

回答

1

当你这样说:

@model.on "selected", @select() 
@model.on "unselected", @deselect() 

你调用@select@deselect方法和结合其返回值的事件。括号使它们成为方法调用而不是您想要的方法引用。因此,只需删除括号以绑定方法参考:

@model.on "selected", @select 
@model.on "unselected", @deselect