首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvp4g中使用事件总线的模块间通信

mvp4g中使用事件总线的模块间通信
EN

Stack Overflow用户
提问于 2013-10-17 17:10:57
回答 1查看 395关注 0票数 0

我们的web应用是基于mvp4g框架的。为了解释我的情况,我将使用以下符号:

代码语言:javascript
复制
A, B              - two different gwt modules
presenterA, viewA - presenter and view pair in module A
            viewA contains an iframe and a button along with other UI components
presenterB, viewB - presenter and view pair in module B
eventBusA         - an eventBus in A with event handler in presenterA
eventBusB         - an eventBus in B with event handler in presenterB

应用程序的流程从加载A开始。viewA被显示,并包含一个按钮和一个iframe,点击哪个模块B就会通过调用URL加载到iframe中,并同时隐藏viewA以避免主动查看。因此,它仍然活跃在背景中。B是一个独立的模块(在AB之间没有子父关系)。它加载viewB,在viewB中单击一个按钮后,我想再次转到eventBusA中的一个事件,因为我想将viewA的状态从隐藏更改为可见。但是eventBusA不能从presenterBeventBusB访问。

我尝试了以下几点,但都没有奏效:

  1. 在eventBusB中创建和事件以响应通过presenterB在viewB中的单击。添加了presenterA作为处理程序。
  2. 在同一事件中添加了以模块A为目标的moduleToLoad。它要求A被声明为子模块。
  3. 考虑使用GWT-出口商项目的javascript。
EN

回答 1

Stack Overflow用户

发布于 2013-10-21 14:17:17

您的问题是,模块B必须向模块A发送推送通知。没有现成的解决方案。

最好的解决方案是发送一个URL重新启动模块A,并使用Place模式恢复模块A的应用程序状态。

因此,模块A必须向模块B发送令牌(历史令牌)。模块B必须保存令牌,如果B模块将控制返回给模块A,则必须调用模块A的url并将令牌用作#-参数。看看mvp4g的历史加倍。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19433096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档