如何在全局范围内使用 Dojo Require 加载自定义模块?
How to load a custom module with Dojo Require with a global scope?
例子
mainfile.js :
require(['someDojoModule', 'myModule.js'], function(SomeDojoModule){
//Function does not exist
myModuleFunction();
})
myModule.js :
require(['otherDojoModule'], function(OtherDojoModule){
const msg = 'myModule';
function myModuleFunction(){
console.log(msg);
}
})
以上不起作用,我知道我可以通过将 myModule.js 设置为 declare 和 return 一个 object 来做到这一点,但我希望它在全球范围内mainfile.js,我该怎么做?
或者我可以将 myModule.js
放在 header 中的脚本标记中并让 myModuleFunction
全局可用的一种方式。
据我了解,您必须 return 一个对象。您可以阅读更多相关信息 here
模块:
define([otherDojoModule], function (otherDojoModule) {
return {
msg: 'myModule',
myModuleFunction: function () {
console.log(this.msg);
}
};
});
主文件:
让您的函数在全球可用
require(["myModule"], function (myModule) {
window.myModule = myModule;
});
您可以像 myModule.myModuleFunction();
这样使用您的函数
一般情况
require(["myModule"], function (myModule) {
myModule.myModuleFunction();
});
例子
mainfile.js :
require(['someDojoModule', 'myModule.js'], function(SomeDojoModule){
//Function does not exist
myModuleFunction();
})
myModule.js :
require(['otherDojoModule'], function(OtherDojoModule){
const msg = 'myModule';
function myModuleFunction(){
console.log(msg);
}
})
以上不起作用,我知道我可以通过将 myModule.js 设置为 declare 和 return 一个 object 来做到这一点,但我希望它在全球范围内mainfile.js,我该怎么做?
或者我可以将 myModule.js
放在 header 中的脚本标记中并让 myModuleFunction
全局可用的一种方式。
据我了解,您必须 return 一个对象。您可以阅读更多相关信息 here
模块:
define([otherDojoModule], function (otherDojoModule) {
return {
msg: 'myModule',
myModuleFunction: function () {
console.log(this.msg);
}
};
});
主文件:
让您的函数在全球可用
require(["myModule"], function (myModule) {
window.myModule = myModule;
});
您可以像 myModule.myModuleFunction();
一般情况
require(["myModule"], function (myModule) {
myModule.myModuleFunction();
});