与Firebug / Chrome控制台中的require.js模块交互?
我刚刚开始使用require.js。 我已经成功地包装了jquery,一些插件和几个我自己的模块。 我试图与我的模块(或jQuery)从Firebug(或谷歌浏览器的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加载我们的data-main,我们就可以通过javascript控制台命令行访问已经被requireJS加载的模块,如下所示:
>> methods = require('methodsModule'); // requireJS has module methodsModule stored >> methods.someMethod() // call someMethod >> methods.anotherMethod() // call anotherMethod
如果一个模块没有被require()或define()调用加载,我们必须通过我们自己的callback来调用require函数在模块被加载之后调用:
>> myCB = function(methods) { methods.someMethod() } >> require(['methodsModule'], myCB)
否则,requireJS会抛出一个错误,指出模块尚未加载。
有一种方法不使用callback。
如果您在控制台或应用程序之前不需要模块,则可以先要求:
require(['methodsModule']);
之后,您可以使用“dynamic”要求来访问它:
require('methodsModule').someMethod();