モジュールを含むアプリケーションがあります。すべてのモジュールは完全に自己完結型です。それらの間に共有イベントやその他のものはありません。各モジュールには、DataGrid と ContextMenu があります。選択したデータの詳細がポップアップ ウィンドウに表示されます。モジュールは通常どおり、loalEventMap と presentationModel によって制御されます。
ポップアップをすぐに閉じて再度開くと、すべて正常に動作します。しかし、ポップアップ内のデータを変更して閉じ、モジュールをアンロードし、モジュールを再度ロードして、ポップアップを再度開くと、Mate は次のエラーをスローします。
- エラー: タイプが CDBPresentationModel ではないため、CDBInputMask にプロパティ モデルを設定できません。指定された値はタイプ CDBPresentationModel でした
- ターゲット: CDBInputMask
- ターゲットキー: モデル
- タグリスト: プロパティインジェクター
- ファイル: CDBLocalEventMap
- スタック トレース: TypeError: エラー #1034: 型強制に失敗しました: com.mycomp.myMod.ui.presenters::CDBPresentationModel@5d13cf1 を com.mycomp.myMod.ui.presenters.CDBPresentationModel に変換できません。com.asfusion.mate.core::Binder/bind()[/Users/Nahuel 1/Documents/Flex Builder 3/Mate_trunk/src/com/asfusion/mate/core/Binder.as:90] com.asfusion で.mate.actions::PropertyInjector/run()[/Users/Nahuel 1/Documents/Flex Builder 3/Mate_trunk/src/com/asfusion/mate/actions/PropertyInjector.as:205]
私の実装:
ポップアップを開く:
inputMask = new CDBInputMask();
PopUpManager.addPopUp(inputMask,this,true);
ポップアップを閉じる:
PopUpManager.removePopUp(inputMask);
入力マスク = null; インジェクター:
<Injectors target="{CDBInputMask}" debug="true" dispatcherType="global" >
Mate-Forum で、似ているが全く同じではない問題を抱えたスレッドを見つけました。ここで司会者は、モジュール内でクラスを 2 回インスタンス化しようとしているように見えることを意味しました。私の場合、PopUpManager はシングルトン クラスです。したがって、同じ問題のように見えます。クラスがすでに注入されているため、最初はすべて正常に動作し、2 回目はクラッシュします。
デバッガーとトレースを使用して、ポップアップをクリアする方法またはモジュールをクリアする方法を確認しようとしました。しかし、私は解決策を見つけていません。さらにコードが必要な場合は、投稿します。
前もって感謝します。フランク