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 不知道哪个视图(每个模型有一个视图,这也是一个“行”视图),对应于哪个模型,或者我正在犯语法错误.

谢谢

4

1 回答 1

1

When you say this:

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

you're calling the @select and @deselect methods and binding their return values to the events. The parentheses make them method calls rather than the method references that you want. So just drop the parentheses to bind the method references:

@model.on "selected",   @select
@model.on "unselected", @deselect
于 2013-05-14T04:42:50.090 回答