【问题标题】:How to namespace coffeescript in a Rails project如何在 Rails 项目中命名咖啡脚本
【发布时间】:2012-10-13 17:38:15
【问题描述】:

在我使用 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 中使用什么代码来实现我想要的命名空间?

【问题讨论】:

    标签: ruby-on-rails-3 coffeescript


    【解决方案1】:

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

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

    那么你应该可以在任何你想要的地方说Helpers.expandTextarea(300)。当然,假设每个页面都包含site.js.coffee

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 2015-01-02
      相关资源
      最近更新 更多