【问题标题】:Backbone event trigger not being picked up.未拾取主干事件触发器。
【发布时间】:2013-05-14 13:19:52
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: javascript backbone.js coffeescript d3.js


    【解决方案1】:

    当你这样说时:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多