3

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

现在的设计是:菜单使用 eventBus 触发一个事件,AppController 捕获它,将它添加到 History 并打开正确的 Presenter(传递给它正确的 View)。

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

4

2 回答 2

1

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

我会做以下事情:

  1. 使用键“#-url”创建一个哈希图,如#view1、#page1 等,并为视图赋值 HashMap mapView = new hashMap(); 如果您的视图不是 Composite 使用 Widget 或任何基类。

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

  3. 添加一个 History.addValueChangeHandler(yourAppController);

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

  5. 绘制从哈希图中获得的视图
于 2012-11-27T17:44:15.577 回答
0

将 iframe 嵌入 html 后,您可以使用History.newItem()and :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

于 2012-11-27T16:09:12.310 回答