从 topic.subscribe's 回调访问小部件
Access to widget from topic.subscribe's callback
我正在尝试使用 Dojo 的发布/订阅主题模块,如此处所述。我正在订阅自定义小部件startup()
方法中的事件,并希望在触发主题时修改小部件。
如何从topic.subscribe()
回调访问小部件?在回调中,this
不引用小部件;我不确定它指的是什么...this
对象包括emit
和on
函数,以及看起来像 "uniqName_0"
的 declaredClass
字段。
您希望在 widget 方法中订阅时使用 dojo/_base/lang::hitch
来更改回调函数的范围,其中 this
引用 widgets 实例。您在这里有几个选择:
-
匿名函数:
topic.subscribe("topic/some", lang.hitch(this, function() { // your callback logic here }));
-
小部件的方法:
topic.subscribe("topic/some", lang.hitch(this, "callbackMethod"));
查看实际操作:http://jsfiddle.net/phusick/N7NGB/
该小部件有一些方便的方法,可以像 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
方法。
http://dojotoolkit.org/api/dijit/_WidgetBase
相关文章:
- 查询后websql成功回调无法访问变量
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- jQuery post,访问responseType或回调中的响应
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- 如何处理在javascript中访问数据结构的两个回调
- 如何在Typescript中的回调中访问类变量
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 可以't从回调函数内部访问响应
- 如何在Promise回调中访问实例变量
- 如何通过回调访问nodejs中的mongodb计数结果
- 回调访问数据
- 如何从回调访问成员变量
- 从回调访问对象的属性
- 如何从传入的预定义回调访问外部变量
- 从 topic.subscribe's 回调访问小部件
- Javascript从另一个回调访问对象变量,而不将变量放在全局范围内
- 如何从WebSocket回调访问React中的组件方法
- 当使用原型方法声明从回调访问对象时,如何访问对象的其他方法
- js回调访问Angular作用域
- 从XMLHttpRequest onload回调访问全局变量