在 GWT 应用程序中,我应该使用不同的事件(和事件处理程序)来切换到每个视图



我正在 GWT 中编写一个菜单,该菜单根据单击的条目打开一个视图。问题是我有很多不同的观点(~20)。

现在的设计是:菜单使用 eventBus 触发一个事件,AppController 捕获它,将其添加到历史记录中并打开正确的演示器(传递正确的视图)。

不确定创建很多事件(如"GoToXXX1"、"GoToXXX2"等)是正确的方法,我应该使用带有参数的单个事件吗?我做错了吗?

是的,我不确定这是正确的方法:

我会做以下几点:

  1. 使用键"#-url"创建哈希映射,如 #view1、#page1 等,并评估视图HashMap mapView = new hashMap();如果您的视图不是复合视图,请使用 Widget 或任何基类。

  2. 在菜单上,使用 Anchor 类并执行 .setHref("view1")、.setHref("page1")等。

  3. 添加 History.addValueChangeHandler(yourAppController);

  4. 捕获历史记录事件时,获取值,然后执行 mapView.get(historyEvent);

  5. 绘制从哈希图获得的视图
在将

iframe 嵌入到 html 后,您可以使用 History.newItem()History.addValueChangeHandler()

<iframe src="javascript:''"
          id="__gwt_historyFrame"
          style="width:0;height:0;border:0"></iframe>

https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsHistory

最新更新