Con*_*ham 4 coffeescript ruby-on-rails-3.1 sprockets
使用Rails 3.1(rc5),我注意到我包含rails(或sprockets)的任何coffeescript文件正在添加初始化javascript的顶部和底部.换句话说,一个空白的.js.coffee文件输出如下:
(function() {
}).call(this);
Run Code Online (Sandbox Code Playgroud)
这很烦人,因为它搞砸了我的javascript范围(除非我真的不知道我在做什么).我通常将我的所有javascript类分成单独的文件,我相信将这些函数代码包装成我的类只会使它们彼此超出范围.或者,至少,我似乎无法访问它们,因为我不断得到未定义的错误.
有没有办法覆盖这个?似乎sprockets中的这个文件与添加这段代码有关:https: //github.com/sstephenson/sprockets/blob/master/lib/sprockets/jst_processor.rb
我知道将函数中的所有内容包装起来似乎是一种额外的便利,因为在加载DOM之前没有任何东西可以运行,但据我所知,它只是弄乱了我的范围.
Jus*_*iss 10
您打算将您的对象置于全局范围内吗?我认为CoffeeScript通常将代码包装在匿名函数中,这样它就不会意外地将变量泄漏到全局范围中.如果没有办法将其关闭,那么您最好的选择可能是在窗口对象中专门添加您想要在全局范围内的任何内容:
window.myGlobal = myGlobal;
Run Code Online (Sandbox Code Playgroud)
这些天似乎是一个javascript最佳实践,将代码置于函数范围内,并明确将对象添加到全局范围,这是我经常看到CoffeeScript自动执行的操作.
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |