5
require(['underscore'], function ($, _) {
  ...
});

動作しません!(_関数ではありません)

それを管理する方法は?

4

5 に答える 5

7

underscore.js はそれ自体を AMD モジュールとして登録しないことに注意してください (ただし、以前のバージョンでは短時間登録されていました)。そのため、「shim:」を使用して何らかの構成を行わないと、require() 呼び出しで使用することはできません。 :

require.config({
    paths: {
        jquery: 'lib/jquery.min',
        underscore: 'lib/underscore-min'
    }
    shim: {
        "underscore": {
            exports: "_"
        }
    }
});

次のドキュメントを参照してください: http://requirejs.org/docs/api.html#config-shim

が require.js に追加される前shim:は、プラグイン use.js で同様のことができました (古いバージョンの require.js を使用する必要がある場合)。

これを書いている時点で、require.js の現在のバージョンは 2.1.8 です。

あるいは、lodash.js を underscore.js のドロップイン代替として使用することもできます。これは AMD モジュールとして自身を登録するため、追加の設定なしで使用できます: http://lodash.com/

于 2013-09-26T19:43:39.000 に答える
2

問題は、コールバックに渡される引数の順序だと思います。

次のようにする必要があります。

require(['underscore'], function (_, $) {
 ...
});

また、この機能を追加したアンダースコア バージョン 1.2.1 を使用する必要があります。

于 2011-11-10T22:10:20.670 に答える
0
require(["underscore"], function() { 
  console.log(_ === window._);
});
于 2011-09-24T15:21:55.820 に答える
0

それはすべて、スクリプトがどこに基づいているかによって異なります。baseUrl を指定していないので、baseUrl がデフォルトになります。つまり、次の 2 つのいずれかになります。

  1. あなたのスクリプトはhtmlファイル内に直接あり、あなたの場合、htmlファイルの同じディレクトリでunderscore.jsを探します
  2. スクリプトは、html ファイルによって参照される JavaScript ファイルにあり、カスタム JavaScript ファイルのディレクトリで underscore.js を検索します。

underscore.js が実際に存在するかどうかを確認します。

于 2011-09-26T09:27:08.530 に答える