3

クリックしたエントリに従ってビューを開くGWTのメニューをコーディングしています。問題は、さまざまなビュー(〜20)があることです。

現在の設計は次のとおりです。メニューはeventBusを使用してイベントを発生させ、AppControllerはそれをキャッチし、履歴に追加して、適切なプレゼンターを開きます(適切なビューを渡します)。

「GoToXXX1」、「GoToXXX2」などの多くのイベントを作成することが正しいアプローチであるかどうかはわかりませんが、パラメーターを使用して単一のイベントを使用する必要がありますか?私はそれをすべて間違っていますか?

4

2 に答える 2

1

ええ、これが正しい方法であるかどうかはわかりません:

私は次のことをします:

  1. #view1、#page1 などのように、キー「#-url」を使用してハッシュマップを作成し、ビュー HashMap を評価します。 mapView = new hashMap(); ビューがコンポジットでない場合は、ウィジェットまたは基本クラスが何であれ使用します。

  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()とを使用できます。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 に答える