6

私はrequirejsに問題があります。たぶん私はそれがどのように機能するべきかを本当に理解していませんが、私にとっては、requirejs が私のコードを異なる独立したスクリプトに分割することを許可していないことは非常に逆効果に思えます。私は Play とそのテンプレート言語を使用してページの構造を構築しているので、コンポーネントごとにページのさまざまな部分にさまざまな JavaScript ロジックを挿入しようとしました。例: すべてのページに必要なコンポーネントと、js ロジックをすべて含む main.scala.html があります。別のページにナビゲーション バーが必要な場合は、これを対応するロジックと共に挿入します。だから私はmain.jsとnavigation.jsを持っています。これらは Jquery モバイルにのみ依存しており、相互に依存していないため、異なるタグでそれらをロードしたいと考えました。

私の質問は次のとおりです。requirejsを使用して、1つのページに複数の独立したスクリプトを含めることは可能ですか? そうでない場合、なぜですか?

前もって感謝します

4

2 に答える 2

3

アイデアは、data-mainをロードする属性が 1 つだけありmain.js、内部でmain.js条件付きで他のスクリプトをロードできるということです。

if (something) {
  require(["this"], function(this) { ... });
} else {
  require(["that"], function(that) { ... });
}

参照: http://requirejs.org/docs/start.html

または、質問を誤解していますか?

于 2012-06-13T12:02:10.223 に答える
1

data-main は、ページに requirejs アプリが 1 つしかない場合に使用します。複数ある場合は、data-main を使用しないでください。とても簡単です。main.js と navigation.js を使用した例を次に示します。

<script src='require.js'></script>
<script>
   require(['main']);
   require(['navigation']);
</script>

あなたのページにはnavigation.jsが必要だと私は主張しますが。各ページをアプリとして扱います。そのため、通常どおり main.js に data-main を追加します。

そして、main.js 内:

// start independent load of navigation.js
require(['navigation']);
// load modules required for main
require(['moduleA', 'moduleB'], function(moduleA, moduleB){
    // inside main.js
});
于 2016-06-21T15:06:36.437 に答える