1

我刚刚开始使用 Ruby on Rails,并且在从 HTML 调用 JavaScript 函数时遇到了一些困难。我正在使用 Rails 3.2.13、Ruby 1.9.3 和 RubyMine 5.0.2。

我在“app/assets/javascripts/”中有一个名为“home.js.coffee”的 CoffeeScript 文件,它显然编译为同一文件夹中的“application.js”。在“app/views/home/”中,我有主页“index.html.erb”的 HTML 文件。我在“home.js.coffee”中有一个名为cubes()

cubes = alert math.cube 3

目前这真的很基本。我想先舒服点。

这是一个名为的对象math

math =
    cube: (x) -> x* square x

我创建了一个按钮index.html.erb,理论上应该调用这个函数:

<button onclick="cubes()">Try it</button>

问题是让它找到 JavaScript 文件。index.html 的头脑中需要什么?application.html 的头部需要什么?

4

1 回答 1

3

问题是该功能在另一个范围内。如果您使用该-b选项编译 CoffeeScript,这将使函数全局可用,但简单的解决方案是:

root = exports ? this
root.cubes = -> alert math.cube 3

然后你可以cubes()从你的 HTML 调用。

于 2013-04-05T03:03:06.227 回答