[英]Error when calling a method within service from a directive in Coffeescript
[英]Calling another function or method from within a click handler in CoffeeScript
我是CoffeeScript n00b,并且正在努力从点击处理程序中调用另一个函数。
出现第一个警报,但第二个则没有。
CourseGuide =
init: ->
$('.js-size-unit-button').on 'click', (e) ->
alert 'hello world - test'
@clickHandler(e)
clickHandler: (e) ->
e.preventDefault()
console.log 'hello world - test 2'
alert 'hello world - test 2'
module.exports = CourseGuide
这是控制台中的错误:
TypeError:this.clickHandler不是函数
我有基本的语法错误吗?
您快到了...从这里更改代码:
$('.js-size-unit-button').on 'click', (e) ->
对此:
$('.js-size-unit-button').on 'click', (e) =>
为什么这样做? “胖箭头”( =>
)告诉CoffeeScript编译器确保事件处理程序中this
的值引用您定义的类,而不是其他内容。 通常,在Javascript中,如果在事件处理程序中使用this
, this
指的是触发事件的元素。
Coffescript文档中标题为“绑定函数,生成器函数”的部分对此进行了描述。
您可能还需要从以下方法更改init
方法的声明:
init: ->
至:
init: =>
以确保在定义事件处理程序时this
的值可以引用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.