使用 Rails 3.1 (rc5),我注意到我包含 rails(或 sprockets)的任何咖啡脚本文件都在顶部和底部添加了初始化 javascript。换句话说,一个空白的 .js.coffee 文件输出如下:
(function() {
}).call(this);
这很烦人,因为它搞砸了我的 javascript 范围(除非我真的不知道自己在做什么)。我通常将我所有的 javascript 类分离到单独的文件中,并且我相信让该函数代码包装我的类只会使它们彼此超出范围。或者,至少,我似乎无法访问它们,因为我不断收到未定义的错误。
有没有办法覆盖这个?sprockets 中的这个文件似乎与添加此代码有关: https ://github.com/sstephenson/sprockets/blob/master/lib/sprockets/jst_processor.rb
我知道将所有内容包装在一个函数中似乎是一种额外的便利,因为在加载 DOM 之前什么都不会运行,但据我所知,它只会弄乱我的范围。