重複の可能性:
AMD(require.js)の使用中にBackbone.jsにブートストラップされたモデルをロードする方法
これは私の問題についての簡単なデモです。
id_user
ファイルのmain.js
にアクセスする必要があります。私の質問は、この状況でグローバル変数を回避する方法は?この目的でグローバル変数を使用するのは悪い習慣ですか?
main.js
require({
paths : {
jQuery : 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min'
}
});
require([ 'jQuery' ], function() {
alert(id_user);
});
index.php
<script data-main="js/main" src="js/require.js"></script>
<script type="text/javascript">
function users() {
id_user = <?php echo $id; ?>
}
users();
</script>
モジュールを処理するためにrequirejsを使用するプロジェクトでこのような使用法のためのグローバル変数があってはならず、すべてのモジュール(およびそれらのプロパティ/メソッド)が環境をきれいに保つためにグローバルに宣言されることはありません。 1つのモジュールで他のモジュールの変数セットを使用する必要がある場合は、APIを介して相互に通信するか、その変数をプロパティとして設定し、モジュールを要求して、その方法でプロパティを取得する必要があります。
しかし、実際にrequirejsが必要かどうかを自問する必要があるかもしれません。適切なモジュールベースのアプリケーションを構築したい場合(変数を渡す方法がわからない場合はわかりません)、はい、JSからいくつかのファイルをロードしてからLazyLoad(http:// www。 appelsiini.net/projects/lazyload)がおそらく答えです。 requirejsのフットプリントを特に考慮して、ケースに応じて検討する価値があると言ってください。
あなたが探しているのは、プロジェクトに変数をbootstrap設定する機能です。これは、あなたの質問に答えます。