GWT-通过EventBus连接两个模块

| 我们将MVP与自定义EventBus结合使用以在视图之间导航。我们的GWT模块之一在视图中加载了电子书。我们有一个名为\“ Expand \”的按钮,单击该按钮会以扩展模式加载电子书,从而隐藏页眉,页脚等。 假设带有“扩展”按钮的视图(UiBinder)被命名为“ ShowEbookView \”。单击“扩展”按钮后,将捕获ClickEvent并将其触发到EventBus。逻辑“ 0”写在同一\“ ShowExpandedMod \”类中。 一切正常,但是在扩展模式下我们有一个名为\“ Popout \”的按钮,单击该按钮后应在新页面中打开电子书!我们需要抽象\“ ShowExpandedMod \”类,以便它可以与EbookId一起使用并可以在新页面中使用。 我们为此新弹出窗口创建了一个带有EntryPoint类,HTML页面和UiBinder页面的新模块。我不确定现在如何进行抽象以及如何在不同模块之间使用EventBus加载相同的内容...(具有课程的可重用性) 我已经尽力了,但也许不是很清楚!如果您需要更多详细信息,请告诉我。 谢谢!     
已邀请:
        当您在浏览器中打开新窗口时,基本上可以得到GWT应用程序的新实例。您不能在不同的浏览器窗口(即不同的GWT模块实例)之间使用EventBus。 您可以做的是: 将参数添加到弹出页面URL。这是通过“历史令牌”(片段标识符)完成的,例如“ 1”。然后您可以通过
History.getToken()
检索令牌 使用DOM在浏览器窗口之间进行通信:javascript中的“ 3”将打开一个新窗口,并返回对该新窗口DOM的引用。然后,您可以访问新窗口的属性和功能。这些都是JavaScript,为了在GWT中工作,您需要将其包装在JSNI中。     
        尝试使用MVP4G,特别是-查看其多模块功能(该功能利用了GWT的代码拆分功能)。 这应该使多个ѭ4和跨模块事件触发器等处理起来更加容易。     

要回复问题请先登录注册