У меня есть команда, которая выполняет служебный вызов. В обработчике результатов я делаю некоторую логику, основанную на данных результата. Если логика соответствует определенным критериям, я показываю всплывающее окно подтверждения. Если пользователь нажимает кнопку «Продолжить» во всплывающем окне подтверждения, у меня есть метод, который вызывается, который отправляет событие Parsley. Это событие Parsley не поймано. Однако, если я отправлю событие Parsley из метода результата, он будет пойман. Любая идея, почему событие не попадает при отправке его вне метода результата?Flex - Parsley - событие не будет отправлено из метода в обработчике результатов
Например ...
[MessageDispatcher]
[Bindable]
public var dispatcher:Function;
я выполнить некоторый вызов службы внутри команды:
public function execute(event:SomeEvent):AsyncToken
{
return service.callService(event.type, false);
}
у меня теперь есть результат обработчик вроде этого:
public function result(data:Object):void
{
if (add some logic here based off data)
AlertHelper.showContinueQuestion(onSelection, "Are you sure you want to continue?");
}
Если пользователь нажимает кнопку «Продолжить» во всплывающем окне подтверждения, вызывает метод onSelection:
private function onSelection():void
{
dispatcher(new SomeEvent(SomeEvent.UPLOAD));
}
Это событие Parsley, SomeEvent, не попадается. Однако, если я отправлю это событие после утверждения if, он будет пойман и работает нормально. Любая идея, почему ее не поймают при отправке извне обработчика результата? Я тоже пробовал в других командах, и он делает то же самое.
Можем ли мы увидеть вашего обработчика, который должен ловить SomeEvent, и где он прикреплен? –
Возможно, это связано с тем, что динамическая команда удаляется из контекста петлицы, как только обработчик результата завершил выполнение. Хотя это странно, я бы догадался, что ваш введенный [MessageDispatcher] все равно сможет отправить событие ... Можете ли вы подтвердить, что метод 'onSelection()' вызывается и что 'dispatcher' не является нулевым? Обычно я использую отдельную команду для запуска предупреждения ... то есть в обработчике результатов вы отправляете событие «показать предупреждение». Команда «show alert» может затем вернуть «AsyncToken» и иметь собственный обработчик результатов. –
Эндрю, я использую конфигурационный файл, содержащий DynamicCommand: –
anad2312