Requirejs 需要了解dojo中的AMD行为
我需要了解AMD在dojo中的一个行为。 在下面的示例中,语句1将始终首先执行,如果就绪或domReady,则执行语句2!没有用Requirejs 需要了解dojo中的AMD行为,requirejs,dojo,amd,Requirejs,Dojo,Amd,我需要了解AMD在dojo中的一个行为。 在下面的示例中,语句1将始终首先执行,如果就绪或domReady,则执行语句2!没有用 function test() { var abc; require(["dijit/registry"], function(registry){ //some modification of abc variable. console.log("statement 1");----> statement 1
function test() {
var abc;
require(["dijit/registry"], function(registry){
//some modification of abc variable.
console.log("statement 1");----> statement 1
});
return abc;----> statement 2
}
提前谢谢。不。。。一旦加载了dijit/registry,就会触发语句1。无法保证在达到报表2时会出现这种情况 只有require回调中的语句才能确保按顺序激发 即使您使用ready或domReady,上述内容仍然有效 您可以尝试以下方法全局公开您的函数:
require(["dojo/_base/kernel", "dijit/registry"], function(kernel, registry){
kernel.global.test = function(){
var abc;
//some modification of abc variable.
console.log("statement 1");----> statement 1
return abc;----> statement 2
}
});
谢谢…实际上,如果我将函数添加到AMD中,我需要全局公开函数名。我无法访问该函数。是否有任何方法可以做到这一点,我也尝试在模块本身中添加return语句2,但它不返回any值。您能帮我一下吗?在我的代码中,我添加了parseOnLoad:true和asyn:true,但是在加载声明性小部件之前执行ready回调。在这方面你能帮我吗?你的电话在哪里?我在你的代码里看不到。。。而且它是异步的:true,而不是asyn:true。也许你应该单独提出一个问题,因为它看起来是一个不同的问题。。。