У меня есть приложение с модулями. Каждый модуль полностью автономен. Между ними нет общих событий или чего-либо еще. В каждом модуле есть DataGrid и с ContextMenu. Детали выбранных данных открываются во всплывающем окне. Модули управляются как обычно loalEventMap и presentationModel.
Если я немедленно закрыл всплывающее окно и снова открыл его, все работает нормально. Но если я изменяю некоторые данные во всплывающем окне, закрываю его, выгружаю модуль, загружаю модуль снова и снова открываю всплывающее окно, Mate выдает следующую ошибку:
- ОШИБКА: невозможно задать модель свойства для CDBInputMask, так как это не тип CDBPresentationModel. Предоставленное значение имело тип CDBPresentationModel
- TARGET: CDBInputMask
- TARGET KEY: модель
- TAG: PropertyInjector
- ФАЙЛ: CDBLocalEventMap
- STACK TRACE: ошибка типа: ошибка # 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);
inputMask = null;
Инжектор:
<Injectors target="{CDBInputMask}" debug="true" dispatcherType="global" >
В Mate-Forum я нашел ветку с похожей, но не совсем идентичной проблемой. Здесь модератор имел в виду, что, похоже, он пытается создать экземпляр класса дважды в модуле. В моем случае PopUpManager - это одноэлементный класс. Так что похоже на ту же проблему. Первый раз через все работает нормально, Второй раз через все падает, потому что класс уже введен.
Я попытался использовать отладчик с трассировкой, чтобы посмотреть, как можно очистить всплывающее окно или очистить модуль. Но я не нашел решения. Если вам понадобится дополнительный код, я его опубликую.
Заранее спасибо.
Frank