eri*_*kcw 40 javascript firebug requirejs google-chrome-devtools
我刚刚开始使用require.js.我已经成功地包装了jquery,一些插件和一些我自己的模块.我正在尝试与Firebug(或Google Chrome的JS控制台)中的模块(或jquery)进行交互,但我运气不错.
从控制台访问这些模块的正确方法是什么?
ben*_*tan 54
假设我们有模块/app/scripts/methodsModule.js,它们返回一些方法:
define({
someMethod: function() {
// do stuff
},
anotherMethod: function() {
// do some more stuff
}
});
Run Code Online (Sandbox Code Playgroud)
在我们的数据主文件/app/scripts/main.js中,我们有:
require(['methodsModule'], function(methods) {
methods.someMethod() // call someMethod
methods.anotherMethod() // call anotherMethod
})
Run Code Online (Sandbox Code Playgroud)
一旦requireJS加载了我们的data-main,我们就可以从javascript控制台命令行访问已经由requireJS加载的任何模块,如下所示:
>> methods = require('methodsModule'); // requireJS has module methodsModule stored
>> methods.someMethod() // call someMethod
>> methods.anotherMethod() // call anotherMethod
Run Code Online (Sandbox Code Playgroud)
如果没有通过调用require()或define()加载模块,我们必须传递自己的回调函数,以便在加载模块后调用require函数:
>> myCB = function(methods) { methods.someMethod() }
>> require(['methodsModule'], myCB)
Run Code Online (Sandbox Code Playgroud)
否则,requireJS会抛出一个错误,说明模块尚未加载..
Val*_*cev 15
有一种方法没有使用回调.
如果之前在控制台或您的应用程序中不需要模块,您可以先要求它:
require(['methodsModule']);
Run Code Online (Sandbox Code Playgroud)
之后,您可以使用"动态"要求访问它:
require('methodsModule').someMethod();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15039 次 |
| 最近记录: |