这段代码正在传入一个函数,并且没有继承EmployeesController对象的状态。如何将EmployessController对象绑定到焦点事件?

class @EmployeesController
  constructor: (@dateInput) ->
    @dateInput.focus(@searchInputGainedFocus)


  searchInputGainedFocus: ->
    console.debug @dateInput


换句话说,当我给dateInput焦点时,console.debug打印未定义。

最佳答案

使用"fat arrow" (=>)searchInputGainedFocus绑定到对象:


  粗箭头=>既可以用于定义函数,也可以用于将其绑定到this的当前值。当使用基于回调的库(例如Prototype或jQuery,[...]


因此,如下定义searchInputGainedFocus

class @EmployeesController
  constructor: (@dateInput) ->
    @dateInput.focus(@searchInputGainedFocus)

  searchInputGainedFocus: =>
    console.debug @dateInput

10-02 12:24