3

次のページを検討してください。

<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
</head>
<body>
    <script data-main="app" src="require.js"></script>
</body>
</html>

RequireJS がロードされていない場合、RequireJS モジュールの依存関係として jQuery を使用するにはどうすればよいですか? jQuery はそれ自体をグローバル AMD モジュールとして公開していることを知っているので、依存関係として追加できるはずですが、その方法がよくわかりません。

私は次のことができるようにしたいと思います:

require(['jquery'], function() {
    console.log('success')
});

jQuery がまだロードを完了していない場合は、ロードが完了するのを待ってから続行する必要があります。これは可能ですか?

4

3 に答える 3

2

次に jQuery をロードし、最初に RequireJS をロードします。両方がロードされたら、メイン モジュールを実行します。

<html>
<head>
    <script src="require.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
</head>
<body>
    <script>
        require(["app"], function(app){
            app.runMe()
        })
    </script>
</body>
</html>

define.amdjQuery は、フローティングが表示されない場合、自身を AMD モジュールとして登録しません。それ自体を適切に登録させる唯一の方法は、jQuery の前に RequireJS をロードすることです。

于 2013-02-14T08:10:06.253 に答える
0

jqueryをシムとして次のように定義する必要があります。

requirejs.config({
  shim: {
    'jquery': {
        exports: '$'
    }
  },
  path : {
    jquery : '$PATH/jquery.js'
  }
});
于 2013-02-13T20:00:57.377 に答える
0

これを行う 1 つの方法は、data-main 属性を使用して、require.js で main.js ファイルをロードすることです。

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

ここで、main.js ファイルは次のフレーバーです。

requirejs.config({
    shim: {         // regard the shim structure as a dependency map
        'jquery': [],
        'app': ['jquery']    // app code will not execute before jquery is loaded
    },
    waitSeconds: 20
});

require(
    [
        'jquery',
        'app'
    ],
    function(
        $
    ) {
        //the plugins from the dependency array have been loaded.
        console.log ("jQuery and app loaded through require.js");
    }
);

上記の例では、require.js と同じ場所 (つまり、サイト) から jquery.js をロードすることを前提としています。

于 2013-02-15T16:14:10.267 に答える