9

私はrequirejsを使用しています。私の main.js コンテンツは次のようなものです。

requirejs.config({
    async: true,
    parseOnLoad: true,
    packages: [],
    paths: {
        jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min'
    }
});

require(["login"], function (loginService) {

    loginService.login('validUser');

});

今、私の構成要素はほとんどありません。ただし、後でパッケージやパスなどを追加するので、require.configの行が増えます。

  1. require.configを別のファイルとして分離して使用したいですか?
  2. jquery の読み込みが遅れると、エラーは発生しますか? 私の他のJavaScriptファイルはそれを使用しています。
4

3 に答える 3

14

はい、次のように、他のものを要求する前に構成を要求できます。

設定例:

require.config({
    baseUrl: '/Public/js',
    paths: {
        jquery: '../../Scripts/jquery-1.10.2.min',
        jqueryui: '../../Scripts/jquery-ui-1.10.2.min',
    },
    shim: {
        jqueryui: {
            deps: ['jquery']
        },
    }
    waitSeconds: 3
});

そして、それをロードします:

require(['/Public/js/config.js'], function() {
    require(['home/index'], function() {                
    });
});

最初の require-statement で config.js をパスで参照していることを覚えておいてください。これは、require.js が読み込まれていないため baseUrl で解決できないためです。内側の require() ステートメントに到達すると、それが読み込まれ、baseUrl に関連する依存関係を参照できます。

于 2014-04-16T16:06:53.367 に答える
1
  1. 構成を別の JS ファイルに入れることができますが、それは問題ではありません。メインコードでrequire()を呼び出す前に、ファイルがロードされていることを確認してください。

  2. requireJS 経由でロードされない他のスクリプトに jQuery を使用している場合、それらのスクリプトがjQuery よりも早くロードされると、エラーが発生します。必要なことは、これらすべての静的ファイルを requireJS モジュールに変換し、 requireJS 経由ですべてロードすることです。各モジュールでdefine()関数を使用することにより、依存関係を設定できるため、すべてのモジュールは、独自のコードを実行する前に jQuery がロードされるのを待ちます。

于 2013-09-06T08:50:58.213 に答える