私はmodulesシステムを使用してマップを作成しています。私は多かれ少なかれD3.js v3に慣れていますが、私はまだv4に慣れています。d3.js v4でエクスポートを再バインド
ディスパッチを追加しようとしていますが、V4でエクスポートを再バインドする方法がわかりません。この機能は現在使用できません。
だから私の派遣(_dis)と私の特定のイベント(「変更タイプ」)のために、D3 v3では、再バインドは、例えば、輸出を返す前に、右のようになります。
d3.mapDots = function (districts){
var _dis = d3.dispatch('changetype');
(...)
exports.color = function(_c){
if(!arguments.length) return color;
color = _c;
return this;
};
d3.rebind(exports,_dis,"on");
return exports
};
、誰もが行う方法を知っていますこれはv4でですか?私はdispatch.applyしようとしていますが、動作しません。
ありがとうございます!
のように説明してくれてありがとうです! 私はそれがより良い方法を理解しています...私の発送はまだアクティブではありません。私は2つの異なるファイル(メインファイルのscript.jsと 'exports.on = function()'があるマップを作成するためのもの)を持っていますが、それが原因かもしれませんね? ありがとう! – Irene
@Irene私があなたに質問したことを理解していれば、彼らは別のファイルに入っていても問題ありません。重要なのは、 'exports.on = function(){...}'がインスタンシエーター関数内に存在するということです(あなたの場合、 'd3.mapDots = function(district){...}'の中にあります)。そうであれば、メインスクリプトが 'mapDots'スクリプトを適切にインポートしていれば、別々のファイルに入っていても問題ありません(' d3.mapDots() 'をエラーなしで呼び出せればそれは適切にインポートされます)。 – meetamit
あなたの問題を再現するjsFiddleを作ることができるはずです。それが問題を解決するのに役立ちます。 – meetamit