d3 を require.js と統合する方法 質問する

d3 を require.js と統合する方法 質問する

d3 を require/backbone アプリケーションに統合しようとして問題が発生しています。 main.js には次のような内容が含まれています:

require.config({
  paths: {
    d3: 'libs/d3/d3.v2.min'
    backbone: ...
    ...
  }
});

そして私のバックボーンビューは次のようになります(コーヒースクリプトで)

define ['backbone','d3',...], (Backbone,d3,...) ->
  MyView = Backbone.View.extend
    initialize: () ->
      d3.somefunction

コンソール ログには、d3 が null であると表示されます。このタイプのアプリケーションに d3 を統合する簡単な方法はありますか?

ベストアンサー1

d3 はモジュールを宣言するために define() を呼び出さないので、d3バックボーン ビューへのローカル参照は必要なものではありません。d3 によって作成されたグローバル変数を使用します。

define(['backbone', 'd3'], function (backbone, ignore) {
    //Use global d3
    console.log(d3);
});

または、シム構成d3 のエクスポート値を宣言するには:

requirejs.config({
    shim: {
        d3: {
            exports: 'd3'
        }
    }
});

これにより、requirejs はグローバル d3 を d3 のモジュール値として使用するようになります。

おすすめ記事