如何在requireJS中加载模块并定义内容?

时间:2017-01-14 20:54:35

标签: javascript requirejs

我想要一个模块来定义内容和需要内容。我有这个:

的test.html

 <!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
    <script data-main="A" src="require.js"></script>
</head>

<body>
The content of the document......
</body>

</html> 

A.js

require(["B", "C"],function(B, C){
    alert(JSON.stringify(B));
    alert(JSON.stringify(C));
});

B.js

define(function(B) {
    alert("B");
    return {"B":1};
});

C.js

define(function(C) {
    alert("C");
    return {"C":1};
});
/*
require(["B"],function(B){
    alert(JSON.stringify(B));
});
*/

但是如何让C加载B,并将其用作定义的一部分?

由于

1 个答案:

答案 0 :(得分:0)

只需将模块B列为依赖项,并在工厂函数上设置参数:

define(["B"], function(B) {
    alert("C");
    alert(JSON.stringify(B));
    return {"C":1};
});

(传递给define的函数通常称为“工厂函数”,因为它构建模块。)

BC的示例代码中,您在工厂函数上设置了一个与正在定义的模块同名的参数,如下所示:{{ 1}} 这没用。由于在工厂函数之前没有给define(function(C) {一个依赖项列表,它将使用空参数列表调用,参数将具有值{ {1}}。工厂函数上的参数只有在RequireJS解析依赖列表时才会填充。