全部,原谅我,我是Dojo的初学者,我从here下载Dojo基础。并尝试找到dojo.require函数的定义,以了解它是如何实现的。不幸的是,没有找到任何有用的东西。有人可以帮帮我吗?感谢。
答案 0 :(得分:0)
我调试代码并发现require函数指向下面的代码。
// this will be the global require function; define it immediately so we can start hanging things off of it
req = function(
config, //(object, optional) hash of configuration properties
dependencies, //(array of commonjs.moduleId, optional) list of modules to be loaded before applying callback
callback //(function, optional) lambda expression to apply to module values implied by dependencies
){
return contextRequire(config, dependencies, callback, 0, req);
},
...
// the loader can be defined exactly once; look for global define which is the symbol AMD loaders are
// *required* to define (as opposed to require, which is optional)
if(global.define){
if( 1 ){
signal(error, makeError("defineAlreadyDefined", 0));
}
return;
}else{
global.define = def;
global.require = req;//define the global variable require and define .
if( 0 ){
require = req;
}
}
还发现了其他有趣的东西。
如果dojo.require一个js文件,如下所示。在我的测试util/utiltest.js
中的js文件位置。
require(
["dojo/ready", "util/utiltest"],
function (ready, util) {
ready(function () {
var id = "selected_text";
util.setRed(id);
});
});
utiltest.js中的代码是:
define("util/utiltest",["dojo/dom", 'require'], function (dom) {
return {
setRed: function (id) {
dom.byId(id).style.color = "red";
}
};
});
实际上Dojo将创建脚本标记以将其加载到页面中。
希望这对你有所帮助。感谢。