让我们说:
qx.Class.define( 'App.Dlg1', { extend : qx.ui.window.Window,
construct : function()
{
...
},
members :
{
myFunc1 : function()
{
}
}
} )
和
qx.Class.define( 'App.Dlg2', { extend : qx.ui.window.Window,
construct : function()
{
...
},
members :
{
myFunc2 : function()
{
}
}
} )
这两个类都是不同的文件,如何在这些类之间发送 - 接收数据,我需要从myFunc2()发送一些信息到myFunc1(),这可能吗?
提前致谢
答案 0 :(得分:1)
如果两个类是相关的,则可以使用事件,并让一个类的实例监听由另一个类的实例触发的事件。
但是,听起来,就像你在考虑无关的实例一样。在这种情况下,一个有用的qooxdoo功能是消息总线。例如,在Dlg1中,您可以执行以下操作,以等待" dialog.data"类型的消息。 (任意字符串,尽管如果类型中有点分隔字段,消息总线可以使用一些特殊的通配符属性):
var messageBus = qx.event.message.Bus.getInstance();
messageBus.subscribe(
"dialog.data",
function(busMessage)
{
var message = busMessage.getData();
console.log("a=" + message.a);
},
this);
然后,在Dlg2中,您可以像这样在总线上发送消息,这将导致Dlg1中的订户显示a=23
:
var messageBus = qx.event.message.Bus.getInstance();
messageBus.dispatchByName(
"dialog.data",
{
a : 23
});