Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在GWT中跨模块访问数据?_Gwt - Fatal编程技术网

如何在GWT中跨模块访问数据?

如何在GWT中跨模块访问数据?,gwt,Gwt,我有两个GWT模块,它们有自己的入口点ModuleA和ModuleB。我正在使用Window.assign()从ModuleA移动到ModuleB。在模块A中设置一个变量值。如何从ModuleB访问相同的值 提前感谢。IMO最好的方法是在主机页中用纯JavaScript实现observer/observable模式,并在应用程序中使用JSNI注册处理程序/触发事件 IMO最好的方法是在主机页中用纯JavaScript实现observer/observable模式,并在应用程序中使用JSNI来注册

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


提前感谢。

IMO最好的方法是在主机页中用纯JavaScript实现observer/observable模式,并在应用程序中使用JSNI注册处理程序/触发事件

IMO最好的方法是在主机页中用纯JavaScript实现observer/observable模式,并在应用程序中使用JSNI来注册处理程序/触发事件

我写了几个答案,可以帮助你解决这个问题

由于无法在两个编译模块之间共享纯java,我建议使用jsni导出方法。但我会使用gwt exporter或gwt query来避免手工编写js,这通常是错误的来源:

请注意,这些解决方案仅适用于两个模块加载在同一html中的情况

如果要将值传递到下载实际url的其他页面,可以将这些值附加到新url并在第二个应用程序中读取:

  // Module A
  Window.Location.assign("module_B.html?msg=whatever");

  // Module B
  String msg = Window.Location.getParameter("msg");

我已经写了几个答案,可以帮助你解决这个问题

由于无法在两个编译模块之间共享纯java,我建议使用jsni导出方法。但我会使用gwt exporter或gwt query来避免手工编写js,这通常是错误的来源:

请注意,这些解决方案仅适用于两个模块加载在同一html中的情况

如果要将值传递到下载实际url的其他页面,可以将这些值附加到新url并在第二个应用程序中读取:

  // Module A
  Window.Location.assign("module_B.html?msg=whatever");

  // Module B
  String msg = Window.Location.getParameter("msg");

除了使用观察者模式,还有其他方法可以实现这一点吗?我正在寻找一种在ModuleA中保存值的方法,这样我就可以从ModuleB访问相同的值。没有标准的内置GWT机制可以做到这一点,因为您有多种方法来卸载模块,并且不能保证它们会在同一页面上(即,如果您使用iFrame)。其他线程可以在网上找到,他们得出相同的结论。对不起,我帮不了你这么多!不客气。如果成功的话,我很高兴听到这个消息!除了使用观察者模式,还有其他方法可以实现这一点吗?我正在寻找一种在ModuleA中保存值的方法,这样我就可以从ModuleB访问相同的值。没有标准的内置GWT机制可以做到这一点,因为您有多种方法来卸载模块,并且不能保证它们会在同一页面上(即,如果您使用iFrame)。其他线程可以在网上找到,他们得出相同的结论。对不起,我帮不了你这么多!不客气。如果成功的话,我很高兴听到这个消息!