我的应用程序中有一些视图,它引用了我的application.js文件,其中包含我在整个应用程序中使用的函数.
在使用3.1的边缘版本之后,我刚刚安装了Rails 3.1版本候选版本.直到我安装RC我没有任何问题,但现在我收到此错误:
ReferenceError:找不到变量:indicator_tag
indicator_tag是我在application.js中定义的函数.我在javascript文件中注意到的唯一区别是现在我的所有函数都包含在:
(function() { ... }).call(this);
Run Code Online (Sandbox Code Playgroud)
我理解这是针对变量范围的吗?但它可能阻止我的页面使用这些变量吗?在有人要求之前,我确保我的include标签中的javascript路径是正确的.
我正在使用带有CoffeeScript的Rails 3.1并遇到了麻烦.如何从位于.js.coffee文件中的.js.erb文件中调用函数?
假设.js.coffee中的函数如下:
myName = -> "Bob"
Run Code Online (Sandbox Code Playgroud)
我想我可以像任何常规的js函数一样调用它,例如:
var theName = myName();
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.有任何想法吗?
或者是否可以在我的.js.erb文件中使用coffeescript来使一切都一样?
有人知道如何在Rails 3.1中使用此选项?现在CoffeScript .call(this)在每个文件上放置一个函数,但我想删除它.
编辑:" 无法找到变量"错误与Rails 3.1和Coffeescript "和" 模式为CoffeeScript模块 "有我想要的.我将改变我的全局变量以使用@global范围.