我想要一个模块来定义内容和需要内容。我有这个:
的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,并将其用作定义的一部分?
由于
答案 0 :(得分:0)
只需将模块B
列为依赖项,并在工厂函数上设置参数:
define(["B"], function(B) {
alert("C");
alert(JSON.stringify(B));
return {"C":1};
});
(传递给define
的函数通常称为“工厂函数”,因为它构建模块。)
在B
和C
的示例代码中,您在工厂函数上设置了一个与正在定义的模块同名的参数,如下所示:{{ 1}} 这没用。由于在工厂函数之前没有给define(function(C) {
一个依赖项列表,它将使用空参数列表调用,参数将具有值{ {1}}。工厂函数上的参数只有在RequireJS解析依赖列表时才会填充。