2012-06-13 6 views
6

requirejsに問題があります。たぶん私はそれがどう動くべきかを実際には知りませんが、私にとっては、requirejsが私のコードを別の独立したスクリプトに分割することができないということは非常に非生産的です。 私はPlayのテンプレート言語を使用してページの構造を構築しているので、コンポーネントの別の部分に異なるJavaScriptロジックを挿入しようとしました。たとえば、私はmain.scala.htmlを持っています。これには、すべてのページに必要なコンポーネントが含まれていて、それらのjsロジックがすべて含まれています。別のページにナビゲーションバーが必要な場合は、これを対応するロジックとともに挿入します。だから私はmain.jsとnavigation.jsを持っている。彼らはJqueryの携帯にしか依存せず、お互いに依存していないので、別のタグでそれらをロードしたかったのです。 2つ目のスクリプトはロードされませんので、私の直感はrequirejsが1つのページに複数のデータ主属性を許可しないように見えることです。requirejsを含む複数のスクリプト

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

+0

と、私の質問は:あなたのコードどこにありますか? – Joseph

答えて

3

おかげアイデアはあなただけmain.jsをロードする1つのdata-main属性を持っているということです、そしてmain.jsの内側にあなたは条件付きで他のスクリプトを読み込むことができ

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

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

か私はその質問を誤解していますか?

+0

はい、それは私の質問でした。 それは私にとってはあまり実用的ではないようです。 それがそれを行う唯一の方法であれば、私はそれを求めて行くでしょう。どうもありがとうございました。 – Calardan

+1

私は@ Caladanに同意します...あなたがこの解決策を説明したやり方で、サイト全体で必要となる可能性のあるすべてのスクリプトについて主に知っておく必要があります。 – Mir

0

data-mainは、あなたの1つのrequirejsアプリしか持っていない場合に使用します。複数ある場合は、data-mainを使用しないでください。それはここでは、非常に簡単です、私はあなたのページがnavigation.jsを必要としない主張するだろうが、あなたのmain.jsとnavigation.js

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

を使用した例です。各ページをアプリとして扱います。あなたのmain.jsにデータ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 
}); 
関連する問題