9

data-main パラメーターを使用して requireJS にパラメーターを渡す方法があるかどうか疑問に思っています。

<script data-main="Main"  src="lib/require/require.js"></script>

グローバルを紹介できます:

<script>
    var mainId = "Main";
    var mainTarget = "body";
</script>
<script data-main="Main"  src="lib/require/require.js"></script>

しかし、それを行うためのよりクリーンな方法があるかどうか疑問に思っていました。ありがとう!

編集:

サイモン、これは mainTarget の値については素晴らしい計画だと思います。

require([
    'plugins/load!./'+mainId+'.htm',
    'plugins/load!./'+mainId+'.css'
],function(html,css){
    var Main = function(){
        this.__proto__ = mainTarget;
    }
    new Main();
}

これを mainId に適用するにはどうすればよいですか?

4

1 に答える 1

15

これを実現する 1 つの方法は、グローバル モジュールまたは共通モジュールを作成し、それを依存関係として使用することです。

global.js

define({
    foo: 'test',
    bar: 'red'
});

グローバルの使用:

require(['global'], function(global) {
    console.log(global.foo) // 'test'
});

これは、JS ファイル内に保持されているグローバル オブジェクト プロパティに依存します。サーバーサイドからのデータをHTMLページのJSオブジェクトに出力するのもよくあるパターンです。これを行うには、モジュールに名前を付けるだけです。

<head>
    <script>
        define('global', {
            mainId: 'Main',
            mainTarget: 'body' 
        })
    </script>
</head>

main.js

require(['global'], function(global) {
    console.log(global.mainId) // 'Main'
});

グローバル プロパティを必要とするモジュールを定義する場合は、モジュールをglobal依存関係として設定するだけです。

また、priority構成オプションを使用して、グローバル モジュールが他の何よりも先に読み込まれるようにすることもできます - http://requirejs.org/docs/api.html#config

于 2012-05-05T20:03:26.203 に答える