私たちの 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
、イベントに再度移動したいと思います。ただし、またはからはアクセスできません。eventBusA
viewA
eventBusA
presenterB
eventBusB
私はうまくいかなかった次のことを試しました:
- presenterB を介して viewB でのクリックに応答するために、eventBusB で作成されたイベント。ハンドラとして presenterA を追加しました。
- 同じイベントで、モジュール A をターゲットとして moduleToLoad を追加しました。A を子モジュールとして宣言する必要があります。
- GWT-Exporter プロジェクトを使用した JavaScript API について考えました。