如果您定义JavaScript函数然后从erb模板调用它,则不会调用该函数。为什么?单击此链接应显示警报,但不会显示。
= link_to "Add Sprout", new_sprout_path, remote: true
控制器:
def new
@sprout = Sprout.new
respond_to { |format| format.js }
end
然后在模板中我调用一个函数:
# sprouts/new.js.erb
doSomething();
该函数在我的js文件中定义:
# javascripts/sprouts.js.coffee
doSomething = ->
alert "yum ghum I am a new sprout."
JavaScript回来了。我可以在控制台中看到它。但我看不到警报。为什么这不起作用?
我正在使用Rails 4。
答案 0 :(得分:9)
@doSomething = -> alert "yum ghum I am a new sprout."
或
window.doSomething = -> alert "yum ghum I am a new sprout." # I prefer this approach, as it's more explicit.