私たちの Web アプリケーションは、mvp4g フレームワークに基づいています。私の状況を説明するために、次の表記法を使用します。
A, B - two different gwt modules
presenterA, viewA - presenter and view pair in module A
viewA contains an iframe and a button along with other UI components
presenterB, viewB - presenter and view pair in module B
eventBusA - an eventBus in A with event handler in presenterA
eventBusB - an eventBus in B with event handler in presenterB
の読み込みから申し込みの流れが始まりますA。viewAが表示され、クリック時にボタンと iframe が含まれます。このモジュールBは、URL を呼び出すことによって iframe 内にロードされ、同時にviewAアクティブな表示から を非表示にします。したがって、バックグラウンドでまだアクティブです。Bは別のモジュールです ( と の間に子と親の関係はAありませんB)。それがロードviewBされ、ボタンをクリックした後、ステータスを非表示から表示に変更したいのでviewB、イベントに再度移動したいと思います。ただし、またはからはアクセスできません。eventBusAviewAeventBusApresenterBeventBusB
私はうまくいかなかった次のことを試しました:
- presenterB を介して viewB でのクリックに応答するために、eventBusB で作成されたイベント。ハンドラとして presenterA を追加しました。
- 同じイベントで、モジュール A をターゲットとして moduleToLoad を追加しました。A を子モジュールとして宣言する必要があります。
- GWT-Exporter プロジェクトを使用した JavaScript API について考えました。