我正在使用Rails 4。
我有以下.js文件(仅限示例):
//= require foo.js
现在我想通过设置一个全局变量来影响foo.js的行为。所以我有以下内容:
var fooType = 'abc';
//= require foo.js
foo.js有以下内容:
$(function() {
if(window.Handlebars && $('#some-id').length) {
if (typeof fooType == 'undefined') {
fooType = 'xyz';
}
Somelib.init(fooType);
}
});
然而,这不起作用。事实上,foo.js似乎根本没有加载。
以下作品:
//= require foo.js
var fooType = 'abc';
有人可以解释一下吗?
另外,在这种情况下使用全局变量是一种好习惯吗?如果没有,我还能怎样做到这一点?
答案 0 :(得分:0)
要求语句只有在文件的第一行才有效,你可以通过创建一个包含所有常数的js文件来解决这个问题:
//= require constants.js
//= require foo.js
然后在constants.js中添加你的全局变量
var fooType = 'abc';
执行此操作可能不是一个好主意 - 为什么不简单地将它放在foo.js文件的顶部?