我使用Rails 4設置一個全局變量之前// =需要.js文件(軌道)
我有以下的.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';
可有人請解釋一下嗎?
此外,在這種情況下,使用全局變量是一種好的做法嗎?如果沒有,我該怎麼做到這一點?
使用全局變量根本不是一個好習慣。你可以使用window.varname來影響你喜歡的任何行爲。 –
我認爲所有的全局變量都是在文檔就緒事件觸發之前設置的,也就是需要變量的時候。另外,我認爲// =只需要加載設置事件處理程序的文件,直到文檔準備好纔會觸發它。 –