カスタムイベントを発行するカスタムDojoクラスを作成しようとしていますが、そのイベントを呼び出し側のクラスからリッスンしようとしています。カスタムクラスからカスタムイベントを放出し、Dojo 1.11でそれを聞くにはどうすればいいですか?
私はこのための完全なサンプルを見つけられませんでした、そして、私はここで立ち往生しています。私は次のことを試してみた
:
私のカスタムクラスでは、私は次のコードを持っている:
on.emit(this, "PointFound", {
Msg:"Found a point Within minDistance",
point:selctedPoint
});
これは、任意のエラーが発生することはありません。私が立ち往生しているところは、それを聞く方法です。
私は(適切にクラスを初期化した後)してみてください:私は(適切にクラスを初期化した後)しようとするとError: Target must be an event emitter
:
on(findUtilInstance,"PointFound", function(e){
console.log(e);
});
私はエラーメッセージが表示されます
findUtilInstance.on("PointFound", function(e){
console.log(e);
});
私はエラーが発生します:TypeError: findUtilInstance.on is not a function
Dojo 1.11.2でカスタム・イベントを起動して受信する正しい方法は何ですか?
myWidget.on("customevent", function(data) {
console.log(" received notification "+data);
});
代わりにdojo/_base/declare
からあなたを拡張する場合は可能性があります。たとえば、あなたが使用できる)、それが唯一のDOMノードのためだと、それはあなたがdijit/_WidgetBase
から延びている場合は、上と呼ばれる方法は、(そこの作品
あなたの代わりに道場/トピックの使用を検討していますか? – GibboK
@GibboK私はdojo/topicに精通していませんが、私はこのカスタムクラスのインスタンスを複数持つことになります。異なるインスタンスのイベントを購読し、トピックを使用してそれらを区別することはできますか? –
はい、可能ですが、私はいくつかの利点があるので、このパターンを評価することを提案することができます。 – GibboK