咖啡脚本构造函数中的绑定事件
Bind event in coffee script constructor
如果我有类
class Control
constructor: (@canvas, @control) ->
@control.on('keyup change', ->
update(@canvas)
)
当我更改控件时,会触发更改事件,并且出现错误$canvas is undefined
。
但是,如果代码更改为
class Control
constructor: (canvas, @control) ->
@control.on('keyup change', ->
update(canvas)
)
一切都按预期工作。
为什么?
这按预期工作。对构造函数参数使用 @
会自动在我们的构造函数中设置this.canvas = canvas
。事件处理程序的上下文(this
)与类不同,除非您使用"胖箭头"=>
显式限定其范围。
class Control
constructor: (@canvas, @control) ->
@control.on('keyup change', => # notice fat arrow
update(@canvas)
)
在您的工作示例中,您通过不将canvas
附加到当前上下文来避免该问题。
相关文章:
- 在offline.js中绑定事件
- 如何在angularjs中检查Kendo树视图数据绑定事件
- 在页面高度更改时绑定事件
- 在页面重新加载后绑定事件,并仅使用Knockout.js、html和js创建新的html元素
- 使用onbeforeunload绑定事件
- 传递类似绑定事件的参数
- 如何对修改后的元素重新绑定事件
- 聚合物模板自动绑定:在模板绑定事件之前的核心选择火灾
- Jquery差异B/w Jquery绑定事件
- SessionStorage绑定事件
- extjs,如何在表单操作中绑定事件
- 模拟 Web 浏览器方向更改事件以使用 Jasmine 测试绑定事件处理程序函数
- 绑定事件发射器上的单个事件
- 如何在绑定事件期间排除元素
- 将鼠标悬停在位于我的页面上的 iframe 上的绑定事件,其中包含包含的 src
- 在 jQuery 中创建 DOM 之前的绑定事件
- 如何在页面加载时在 ajax 调用中绑定事件处理程序后触发事件
- 使用 ajax 加载的页面绑定和取消绑定事件处理程序
- 咖啡脚本构造函数中的绑定事件
- 将数据添加到动态创建的元素和绑定事件