2019-02-28 18:26题主

在Wb的不同的tab page切换的触发的事件?

比如我打开了 数据库管理器  和 文件管理器 两个module,请问一下,我从 数据库管理器 tab,转到 文件管理器的tab的时候,触发了 文件管理器的什么事件?能否监听,并且相关的逻辑。

背后的应用场景,我设计了很多的module,但这些module之间共享一个保存在cookie中的值,在某一个模块中 修改了这个cookie的值,希望其他的module 在重新获得焦点或active的时候,自动判断是否需要根据cookie中的值 重新load相关数据。

2019-02-28 18:53#1
触发了 sys/portal/home.xwl中的tab的tabchange

问题转换为 如何 app.tab.getActiveTab() 之后,如何获取 该tab对应module里面的某一个函数的问题
2019-02-28 19:04#2
从activetab的appScope中能看到相应的字段和定义,比如 方法 getTotalNumber, 
但 直接调用 activetab.getTotalNumber undefined.... 
2019-02-28 19:24#3
问题也可能转换为,如何给一个module定义 beforeactivate

目前在Wb设计中只有三个event: initialize, finalize 以及beforeunload() 
2019-03-01 10:21#4
tab有事件
2019-03-01 14:00#5
home.xwl里面的tab没看到beforeactivate 事件呢​
2019-03-04 10:52#6
tab下的card有beforeactive,或监听tab的change事件都可以
2019-03-05 08:45#7
home.owl的change事件,可以监听到新打开的module,也可以调用 activetab.title获取标题,但是没找到如何调用新打开module里定义的函数
2019-03-05 10:45#8
tab.appScope.yourFn()
2019-03-05 18:55#9
tab.appScope.yourFn() 我肯定试过,如果没记错的话,好像是undefined错误信息。
2019-03-05 19:32#10
var tab = app.tab.getActiveTab();
Cs.info('#####################');
Cs.info(tab.title);
Cs.info('##### tab.appScope.getProjectId');
if (tab.appScope.getProjectId) {  //判断该模块中是否定义了 getProjectId函数
  Cs.info(tab.appScope.getProjectId);
  Cs.info(tab.appScope.getProjectId()); //getProjectId() 是自定义的函数
} else {
  Cs.info('tab.appScope.getProjectId undefined');
}

发现问题是,在home.xwl tab.change中上述代码,第一次打开模块的时候, Cannot read property 'getProjectId' of undefined, 但模块已经打开,只是切换(beforeactivate),能正确调用。

因此问题好像是 模块打开之后,在home.xwl tab change的时候,模块貌似还没实体化好,这个如何处理呢?

2019-03-06 10:37#11
建议理顺你的应用逻辑,
你是在beforeactive触发,该事件当然不会有模块加载​
2019-03-06 23:23#12
我的应用逻辑是这样的,我写了 一些功能模块,可以通过点击左边模块树上的相应模块直接运行模块,运行的模块是作为Wb. home.xwl tab控件的一个tab,我需要再home.xwl的tab 切换到 我写的模块的时候,自动触发自定义函数。

举例,假设 admin/dept.xwl 就是我写的模块,运行之后,我想在用户从其他tab切换到 部门管理 的时候,调用某一个函数。

dept.xwl 没有beforeactivate事件,dept.xwl可以在tab上运行,也可以直接 http://localhost:8080/wb/m?xwl=admin/dept (没有在tab)中运行。
2019-03-07 07:29#13
我的业务目的:想在切换到业务模块的时候,自动更新并提取一些业务信息显示在home.xwl的右上角() 用户 左侧。
所以想到的逻辑是:在home.xwl的tab change中监控是否切换到了业务模块,然后调用业务模块中的方法更新信息,并提取属性用于home.xwl右上角的显示
2019-03-07 10:44#14
可以参考示例应用下面的portal示例

返回开发者社区