骨干事件触发器未被拾取。

时间:2013-05-14 04:24:06

标签: javascript backbone.js coffeescript d3.js

我有一个问题的代码跨越多个页面,所以我会尽力发布相关内容。

我使用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 个答案:

答案 0 :(得分:1)

当你这样说时:

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

您正在调用@select@deselect方法并将其返回值绑定到事件。括号使它们成为方法调用而不是您想要的方法引用。所以只需删除括号以绑定方法引用:

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