我试图创建一个自定义Dojo类,它发出一个自定义事件,我试图从调用类中侦听该事件。
我还没有为此找到一个完整的样本,我就被困在这里。
我尝试过以下方法:
在我的自定义类中,我有以下代码:
on.emit(this, "PointFound", {
Msg:"Found a point Within minDistance",
point:selctedPoint
});
这不会导致任何错误。我被困的地方在于如何倾听它。
当我尝试(正确初始化课程后):
on(findUtilInstance,"PointFound", function(e){
console.log(e);
});
我收到一条错误消息:Error: Target must be an event emitter
当我尝试(正确初始化课程后):
findUtilInstance.on("PointFound", function(e){
console.log(e);
});
我收到错误:TypeError: findUtilInstance.on is not a function
Dojo 1.11.2中用于触发自定义事件并接收它们的正确方法是什么?
答案 0 :(得分:1)
dojo/on
它仅适用于DOM节点,如果您从dijit/_WidgetBase
延伸,那么它可以工作,那么您可以使用一个名为on()的方法,例如:< / p>
myWidget.on("customevent", function(data) {
console.log( " received notification "+data );
});
如果您从dojo/_base/declare
延伸,则可以考虑使用dojo/topic
并实施发布 - 订阅模式。
哪个允许&#34;类/模块&#34;相互沟通。
dojo / topic提供了一个用于发布和订阅的集中式中心 到主题的全局消息。可以使用订阅主题 topic.subscribe(),消息可以使用topic.publish()发布。
基本上,您可以将dojo/topic
用于:
require(["dojo/topic"], function(topic){
topic.subscribe("some/topic", function(){
console.log("received:", arguments);
});
// ...
topic.publish("some/topic", "one", "two");
});