如果我通过define加载模块,我无法调用模块中定义的函数,但是当我需要模块时函数存在并且可以被调用。像这样的东西
致电模块
define([
"dojo/_base/declare",
... ,
"app/myModule"
], function (declare, ... , myModule) {
var thisModule = declare(null, {
constructor: function () {
}
});
/**
* Go to next page
*/
thisModule.nextPage = function () {
myModule.goToPage(nextPage).then(function(){
});
};
return thisModule;
});
被叫模块
define([
"dojo/_base/declare"
],
function (declare) {
var myModule = declare(null, {
constructor: function () {
}
});
myModule.goToPage = function(page){
var deferred = new Deferred();
//some code
deferred.resolve(1);
return deferred.promise;
};
return myModule;
});
我收到此错误
未捕获的TypeError:myModule.goToPage不是函数
但是,如果我在代码周围放置一个require并且需要myModule它就可以工作并且myModule对象上存在该函数
喜欢这个
thisModule.nextPage = function () {
require("app/myModule", function(myModule){
myModule.goToPage(nextPage).then(function(){
});
});
};
答案 0 :(得分:0)
问题是定义导入的顺序,public static void msgDialog(String message){
JOptionPane.showMessageDialog(null, message);
}
是指定义中的其他加载模块,所以在这种情况下,将模块放在声明之后,在{ {1}}和myModule
功能如下:
define