1

在我使用 Coffeescript 的 Rails 项目中,我希望能够在视图中执行以下操作:

f.text_area :content, :size => "77x4", :oninput => 'Helpers.expandTextarea(300)'

这将调用一个咖啡脚本函数,该函数将在需要时扩展文本区域。我的问题是我似乎无法正确命名咖啡脚本以使其正常工作。我试着这样做

# site.js.coffee
Helpers =
  expandTextarea: ->
    alert "function found!"

这行不通。尝试Helpers在浏览器控制台中调用会引发undefined错误。我的问题是这样的:

我将在 site.js.coffee 中使用什么代码来实现我想要的命名空间?

4

1 回答 1

2

您可以手动放入Helpers全局命名空间:

window.Helpers =
  expandTextarea: ->
    alert "function found!"

然后你应该可以说Helpers.expandTextarea(300)任何你想说的。当然,假设site.js.coffee它包含在每一页上。

CoffeeScript 文件默认包装在函数中:

(function() { /* compiled CoffeeScript goes here */ })();

以避免污染全局命名空间。您可以为 CoffeeScript 编译器提供选项以使其不像这样包装,但最好将全局内容显式放入window.

于 2012-10-23T18:36:19.480 回答