2017-01-14 3 views
0

モジュールでコンテンツを定義し、コンテンツを必要とするようにしたい。私はこれがあります。モジュールをロードして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

モジュール "C"を定義する際に、 "B"を依存関係として定義できます。見てください[ここ](http://requirejs.org/docs/api.html#defdep) –

答えて

0

だけで依存関係としてモジュールBをリストアップして、あなたのファクトリ関数にパラメータを設定します。

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

(あなたがdefineに渡す機能は、一般的にそれので「ファクトリ関数」と呼ばれていますモジュールを構築します。)BCのためのあなたのコード例で

あなたがトンでパラメータを設定しますモジュールと同じ名前のファクトリ関数は、次のように定義されています。define(function(C) {これは役に立たないです。defineには、ファクトリ関数の前に依存関係のリストが与えられていないので、空のパラメータリストで呼び出され、パラメータの値はundefinedになります。ファクトリ関数のパラメータは、RequireJSが依存関係リストを解決するときに満たされている場合にのみ意味を持ちます。

関連する問題