我不能在erb模板中调用这个CoffeeScript方法吗?它不起作用,但它似乎应该。
setup.js.coffee
class SetupStepTwo
include @
constructor: ->
@resetView()
resetView : ->
console.log('cool');
window.ns1.SetupStepTwo = SetupStepTwo
$ ->
new SetupStepTwo()
update.js.erb
window.ns1.SetupStepTwo.resetView();
答案 0 :(得分:0)
您的SetupStepTwo
类有一个名为resetView
的实例方法,但您尝试将其称为类方法(或至少当你说这个时,作为(Java |咖啡)脚本中的类方法传递的内容:
window.ns1.SetupStepTwo.resetView();
如果您真的想使用resetView
作为类方法,那么您的类看起来应该更像这样:
class SetupStepTwo
constructor: ->
@constructor.resetView()
@resetView : ->
console.log('cool')
@
上的@resetView
构成了一个类方法,而@constructor
或多或少就像Ruby中的self.class
一样。
演示:http://jsfiddle.net/ambiguous/eDdmd/
如果您希望resetView
成为实例方法,那么您需要替换它:
window.ns1.SetupStepTwo.resetView();
对resetView
的实例进行SetupStepTwo
调用。