CoffeeScript类字段未定义

时间:2012-02-16 22:01:18

标签: javascript jquery coffeescript

此代码传入一个函数,并未传递EmployeesController对象的状态。如何将EmployessController对象绑定到焦点事件?

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


  searchInputGainedFocus: ->
    console.debug @dateInput

换句话说,当我给出dateInput焦点时,console.debug会打印undefined。

1 个答案:

答案 0 :(得分:5)

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

  

胖箭头=>可以用来定义一个函数,并将其绑定到当前值this,就在现场。当使用基于回调的库(如Prototype或jQuery,[...]

)时,这很有用

所以定义searchInputGainedFocus就像这样:

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

  searchInputGainedFocus: =>
    console.debug @dateInput