Ruby on rails 3 如何不封装咖啡脚本

Ruby on rails 3 如何不封装咖啡脚本,ruby-on-rails-3,coffeescript,encapsulation,Ruby On Rails 3,Coffeescript,Encapsulation,我不知道是否所有的coffeescript编译器都将它们的脚本封装在匿名函数中,但我看到Rails就是这样做的。如何禁用此封装 我想在一个coffeescript文件中放入几个初始化函数,然后从一个on page标记调用其中一个函数(以便每个页面调用不同的初始化器)。如果封装了初始化函数,则不会出现这种情况 Coffeescript初始值设定项函数: 第页代码: $(文档).ready(初始化) Sys:coffee-rails 3.2.1、rails 3.2.3、Ruby 1.9.3Coff

我不知道是否所有的coffeescript编译器都将它们的脚本封装在匿名函数中,但我看到Rails就是这样做的。如何禁用此封装

我想在一个coffeescript文件中放入几个初始化函数,然后从一个on page
标记调用其中一个函数(以便每个页面调用不同的初始化器)。如果封装了初始化函数,则不会出现这种情况

Coffeescript初始值设定项函数:

第页代码:

$(文档).ready(初始化)

Sys:coffee-rails 3.2.1、rails 3.2.3、Ruby 1.9.3

Coffeescript文档说,为了封装/安全起见,所有脚本都将封装在匿名函数中。要在全局范围内访问某些内容,请执行以下操作:

window.myvar = myvar

通过执行以下操作,可以将多个文件放入一个文件中:

((Demo, $, undefined_) ->
  Demo.utils = Demo.utils or {}

  Demo.utils.bacon = (->
      alert("bacon called")
    )()

  Demo.utils.eggs = (->
      alert("eggs called")
    )()
) window.Demo = window.Demo or {}, jQuery
然后在页面中调用适当的方法:

Demo.utils.bacon();

有关此模式的详细信息,请参见

+1。(另一个人的更容易让我消化。)可能是@TrevorBurnham的复制品,确实类似。但是,我找不到这个问题,使用与这个问题及其答案相关的搜索词,所以这个问题一定有一定的价值。这就是为什么重复项被关闭而不是被删除的原因:它允许它们指向一个更规范的问题。
((Demo, $, undefined_) ->
  Demo.utils = Demo.utils or {}

  Demo.utils.bacon = (->
      alert("bacon called")
    )()

  Demo.utils.eggs = (->
      alert("eggs called")
    )()
) window.Demo = window.Demo or {}, jQuery
Demo.utils.bacon();