在rails 3.1中使用coffeescript,jQuery和链轮,将coffeescript文件编译为以下块:
(function() {
var a;
var b;
var c;
foo = function() {
alert("foo");
}
bar = function() {
alert("bar");
}
}).call(this);
Run Code Online (Sandbox Code Playgroud)
这似乎将函数foo和bar移出了全局范围,因此bar可以由foo调用,但不能从html代码中调用。当我尝试从select onchange元素调用foo时,出现“找不到变量:foo”。
现在的解决方法是将所有全局可用的功能移至.js文件。但是,这样做的正确方法是什么?
谢谢