我剛剛開始使用require.js。我已經成功地包裝了jquery,一些插件和幾個我自己的模塊。我試圖從Firebug(或Google Chrome的JS控制檯)與我的模塊(或jQuery)進行交互,並且我沒有太多運氣。從Firebug/Chrome控制檯與require.js模塊交互?
什麼是從控制檯訪問這些模塊的正確方法?
我剛剛開始使用require.js。我已經成功地包裝了jquery,一些插件和幾個我自己的模塊。我試圖從Firebug(或Google Chrome的JS控制檯)與我的模塊(或jQuery)進行交互,並且我沒有太多運氣。從Firebug/Chrome控制檯與require.js模塊交互?
什麼是從控制檯訪問這些模塊的正確方法?
說我們有模塊/app/scripts/methodsModule.js返回的幾種方法:
define({
someMethod: function() {
// do stuff
},
anotherMethod: function() {
// do some more stuff
}
});
在我們的數據,主文件/app/scripts/main.js我們:
require(['methodsModule'], function(methods) {
methods.someMethod() // call someMethod
methods.anotherMethod() // call anotherMethod
})
一旦requireJS負載了我們的數據爲主,我們可以訪問已加載由requireJS從JavaScript控制檯命令行,像這樣的任何模塊:
>> methods = require('methodsModule'); // requireJS has module methodsModule stored
>> methods.someMethod() // call someMethod
>> methods.anotherMethod() // call anotherMethod
如果模塊尚未通過調用加載的要求()或定義(),我們要通過我們自己的回調的要求函數來調用該模塊加載後:
>> myCB = function(methods) { methods.someMethod() }
>> require(['methodsModule'], myCB)
否則,requireJS會拋出一個錯誤,指出該模塊尚未加載。
有一種方法不使用回調。
如果模塊沒有在控制檯要求或之前,你的應用程序,你可以要求它首先:
require(['methodsModule']);
後,您可以使用「動態」
需要訪問它:
require('methodsModule').someMethod();
這比我想要的要容易得多,'+ 0.1E1'。我寧願只是將模塊加載到窗口以方便訪問。 '需要([M = 'LIB/imagesloaded']); imagesLoaded =需要(M);' – Orwellophile
這是否與requireJS「優化」腳本一起工作?也許我在這裏做錯了什麼,但它似乎並不適合我。 – Stephen
截至2015年5月20日仍有效。在將「原始」項目轉換爲AMD時,我需要確保一切正常。但是,我無法找到定義執行後返回的模塊對象的位置。很好的解釋。 –