在程序设计上,有时需要从一个窗口传值到另外一个窗口;或者一个窗口关闭的时候,需要传递一些内容到另外一个窗口;或者一个窗口关闭时,需要触发另外一个窗口的事件。
要满足上面的需求,通常有几种方法:一是借助缓存或者内存、或者剪贴板,两个窗口监控内存或者剪贴板的变化,实现数据传递;二是借助临时文件或者配置文件,通过文件的读写来实现数据的传递;三是通过管道读写;四是通过系统消息机制来通讯;四是通过本地客户端和服务端之间的通讯来实现。
aardio提供了一种新方法:订阅(subscribe)和发布(publish)。
接收方法如下:
subscribe("KEY值",function(str){ // str为传递值,可以按需使用 }
发出方法如下:
publish("KEY值",str);
其中:KEY值为任意内容,subscribe和publish需要一致。
不但不同窗口之间可以使用这种方法,就是同一个窗口内部也可以使用,当作某种调用方法。
下面是一个例子,知识库创建,需要指定一个归属目录,即弹出目录树窗口供选择,选择后需要回写到创建窗口:
代码如下图: