如何从erb模板调用JavaScript函数?

时间:2013-09-03 15:11:14

标签: jquery ruby-on-rails ujs

如果您定义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。

1 个答案:

答案 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.