1
// Load the dom module
require(["dojo/dom"], function(dom){
});

我知道在加载 dom 模块时会调用该函数,但我不清楚该函数中的代码是什么。它是我页面上所有 javascript 代码的容器吗?

4

1 回答 1

7

该函数是回调函数,当 AMD 加载器加载了您需要的所有模块时,它会调用该函数。

如果我有

require(["dojo/_base/ready", "dojo/_base/declare"], function(ready, declare) {

  // do something with declare and ready

});

AMD 将准备好加载并声明。这可能需要 AMD 向服务器进行异步回调。一旦 AMD 加载了模块,它就会调用您传递给require方法的函数。

我在 Dojo Builds 的回答...?现在怎么办?有关 AMD API 的更多详细信息。


回答评论中的问题。以下两个语句可以在页面上的任何位置。

<script type="text/javascript">
require(["dojo/_base/ready", "dojo/_base/declare"], function(ready, declare) {
   // do something with declare and ready
});
</script>

<script type="text/javascript">
require(["dojo/_base/ready", "dojo/_base/declare", "dijit/form/Button"], 
   function(ready, declare, Button) {
     // Assuming this is the second statement to be executed, AMD will 
     // realize that ready and declare have previously been loaded,
     // so it will use the previously loaded modules, load the Button module, 
     // and then execute the callback

     // do something with declare, ready, and Button
});
</script>
于 2013-02-28T11:43:17.760 回答