如何使用全局范围加载具有Dojo Require的自定义模块?

时间:2017-11-28 18:11:24

标签: javascript dojo

实施例

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并返回一个对象来实现,但是我希望它在mainfile.js的全局范围内,我该怎么做?

或者只是一种方法,我可以将myModule.js放在标题的脚本标记中,并使myModuleFunction全局可用。

1 个答案:

答案 0 :(得分:1)

据我所知,你必须归还一个物体。您可以阅读有关此here

的更多信息

<强>模块:

define([otherDojoModule], function (otherDojoModule) {
return {
    msg: 'myModule',
    myModuleFunction: function () {
        console.log(this.msg);
    }
};

});

<强> Mainfile:

使您的功能全球可用

require(["myModule"], function (myModule) {
        window.myModule = myModule;
    });

您可以使用myModule.myModuleFunction();

之类的功能

常见案例

require(["myModule"], function (myModule) {
        myModule.myModuleFunction();
    });