我在GWT编写一个菜单,根据点击的条目打开一个View。问题是我有很多不同的观点(~20)。
现在设计是:菜单使用eventBus触发事件,AppController捕获它,将其添加到历史记录并打开正确的Presenter(将其传递给右视图)。
我不确定是否会创建很多事件,如“GoToXXX1”,“GoToXXX2”等,这是正确的方法,我应该使用带参数的单个事件吗?我做错了吗?
答案 0 :(得分:1)
是的,我不确定这是正确的方法:
我会做以下事情:
使用键#“-url”创建一个hashmap,如#view1,#page1等,并为视图赋值 HashMap mapView = new hashMap(); 如果你的观点不是复合使用小部件或任何基类。
在菜单上,使用Anchor类并执行.setHref(“view1”),。setHref(“page1”)等。
添加History.addValueChangeHandler(yourAppController);
捕获历史事件时,获取值,然后执行mapView.get(historyEvent);
答案 1 :(得分:0)
将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