2012-05-31 18 views
9

私はRequireJs 2.0を使用しています(または使用しようとしています)。複数のデータ主体を使用する必要があります

現在、私の資産は「一般」と「カスタム」の部分にグループ分けされています。すべてのページは、一般的なスクリプトを使用する必要がありますが、一部のページだけがカスタムを使用する必要があります。

私がRequireJsに伝えることから、あなたの設定を保持する1つのdata-main値を受け入れ、基本的にあなたのモジュールが要求します。すべてのページで同じアセットを使用しても問題ありませんが、カスタムページ用に追加のdata-mainスクリプトを追加するにはどうすればよいですか?

ありがとうございました!

答えて

3

data-main属性を使用して一般スクリプトを読み込みます。カスタムページでは、カスタムモジュールが必要な処理を行っている間は、require呼び出しでラップしてください。あなたのマスターページ(またはテンプレートまたはレイアウトまたは何でもそれはあなたのサーバプラットフォーム上で呼ばれていますが)、これを持っているでしょう:

<html><head> 
<script language="javascript" src="require.js" data-main="general" ></script> 
</head> 

カスタムページのマークアップは次のように見ることができます(メモリから構文;ダブルチェック!)

<p class="funny">I'm a funny paragraph</p> 
<script language="javascript"> 
require(['funny-stuff'], function(fs) { 
    fs.doSomthing(); 
}); 
</script> 

funny-stuffモジュールは、要求するページによってのみ読み込まれます。いくつかのページで別個のマークアップを使用したくない場合や、別のマークアップを使用できない場合は、コールをifステートメント内にラップして、メインスクリプトから依存関係を動的に読み込むことができます。 general.js内:

// Determine if we need the custom module 
if (isFunnyPage()) { 
    require(['funny-stuff'], function(fs) { 
    fs.doSomething(); 
    }); 
} 

あなたはオプティマイザを実行すると、それはrequireコールで参照依存関係を見つけ、そしてあなたのメインファイルとデフォルトのパッケージ、それによってれるため、注意する必要があります。したがって、カスタムモジュールを除外するようにオプティマイザを構成する必要があります。

関連する問題