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 のモジュール値として使用するようになります。