Javascript 从topic.subscribe';s回调
我正在尝试使用Dojo的发布/子主题模块,如文档所示。我正在订阅自定义小部件的Javascript 从topic.subscribe';s回调,javascript,dojo,publish-subscribe,Javascript,Dojo,Publish Subscribe,我正在尝试使用Dojo的发布/子主题模块,如文档所示。我正在订阅自定义小部件的startup()方法中的事件,并希望在触发主题时修改小部件 如何从主题.subscribe()回调中访问小部件?在回调中,此不涉及小部件;我不确定它指的是什么。。。这个对象包括emit和on函数,以及一个declaredClass字段,它看起来像“uniqName\u 0”您想在小部件方法内部订阅时使用dojo/\u base/lang::hitch来更改回调函数的范围,其中,此指的是小部件实例。您在这里有几个选项:
startup()
方法中的事件,并希望在触发主题时修改小部件
如何从
主题.subscribe()
回调中访问小部件?在回调中,此
不涉及小部件;我不确定它指的是什么。。。这个
对象包括emit
和on
函数,以及一个declaredClass
字段,它看起来像“uniqName\u 0”
您想在小部件方法内部订阅时使用dojo/\u base/lang::hitch
来更改回调函数的范围,其中,此
指的是小部件实例。您在这里有几个选项:
topic.subscribe("topic/some", lang.hitch(this, function() {
// your callback logic here
}));
topic.subscribe("topic/some", lang.hitch(this, "callbackMethod"));
查看它的操作:小部件有一些方便的方法,可以按照phusick的描述处理挂接 在启动方法中,您可以编写
startup: function() {
this.inherited(arguments);
this.subscribe('topic/some', '_onTopic');
},
_onTopic: function() {
this.something // 'this' is the widget
}
小部件还有其他方便的方法
this.unsubscribe
this.connect
this.disconnect
当使用subscribe
和connect
方法时,当小部件被销毁时,将自动调用unsubscribe
和disconnect
方法