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

Jum*_*ton 2 jquery ruby-on-rails ujs

如果您定义JavaScript函数然后从erb模板调用它,则不会调用该函数.为什么?单击此链接应显示警报,但不会.

= link_to "Add Sprout", new_sprout_path, remote: true
Run Code Online (Sandbox Code Playgroud)

控制器:

def new
  @sprout = Sprout.new
  respond_to { |format| format.js }
end
Run Code Online (Sandbox Code Playgroud)

然后在模板中我调用一个函数:

# sprouts/new.js.erb
doSomething();
Run Code Online (Sandbox Code Playgroud)

该函数在我的js文件中定义:

# javascripts/sprouts.js.coffee
doSomething = ->
  alert "yum ghum I am a new sprout."
Run Code Online (Sandbox Code Playgroud)

JavaScript回来了.我可以在控制台中看到它.但我看不到警报.为什么这不起作用?

我正在使用Rails 4.

pdo*_*926 9

@doSomething = -> alert "yum ghum I am a new sprout."
Run Code Online (Sandbox Code Playgroud)

要么

window.doSomething = -> alert "yum ghum I am a new sprout." # I prefer this approach, as it's more explicit.
Run Code Online (Sandbox Code Playgroud)