我有两个GWT模块,它有自己的入口点ModuleA和ModuleB。我正在使用Window.assign()从ModuleA移动到ModuleB。在ModuleA中设置一个变量值。如何从ModuleB访问相同的值?
提前致谢。
答案 0 :(得分:1)
我写了几个答案,可以帮助你解决这个问题。
由于你不能在两个编译模块之间共享纯java:GWT: How to share a java Object (ie: EventBus) between two modules,我建议使用jsni:How to communicate two modules in GWT导出方法。但我会使用gwt-exporter或gwt-query来避免手工编写js,这通常是错误的来源:Calling GWT Java function from JavaScript
请注意,这些解决方案仅适用于两个模块都加载到同一个html中的情况。
如果要将值传递给下载实际值的其他页面,可以将这些值附加到新URL并在第二个应用程序中读取它:
// Module A
Window.Location.assign("module_B.html?msg=whatever");
// Module B
String msg = Window.Location.getParameter("msg");
答案 1 :(得分:0)
IMO最好的方法是在主页中用纯JavaScript实现观察者/可观察模式,并在应用程序中使用JSNI来注册处理程序/ fire事件。