1

我有两个 GWT 模块,它们有自己的入口点 ModuleA 和 ModuleB。我正在使用 Window.assign() 从 ModuleA 移动到 ModuleB。在 ModuleA 中设置了一个变量值。如何从 ModuleB 访问相同的值?

提前致谢。

4

2 回答 2

1

我已经写了几个答案,可以帮助您处理这个问题。

由于您无法在两个编译模块之间共享纯 java:GWT: How to share a java Object (ie: EventBus) between two modules,我建议使用 jsni 导出方法:如何在 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");
于 2013-09-13T10:38:47.093 回答
0

IMO 最好的方法是在您的主机页面中以纯 JavaScript 实现观察者/可观察模式,并在您的应用程序中使用 JSNI 来注册处理程序/触发事件。

于 2013-09-13T07:13:37.200 回答