Показывать предупреждение, если вы продолжаете без сохранения во Flex? - PullRequest
1 голос
/ 03 августа 2011

Functionnaly: На одном из моих компонентов приложения у меня есть система редактирования / блокировки.Когда пользователь начинает редактирование, он блокирует файл, чтобы другие пользователи не могли его редактировать.

Сценарий проблемы : Когда пользователь активирует «режим редактирования» и покидает экран, я хотел бы показать предупреждение с двумя вариантами: сохранить изменения или отменить изменения.

Существуют различные способы выхода из экрана:

  • С левой стороны находится список, содержащий другие возможные данные editabel.Щелчок изменяет данные в моем компоненте.
  • Сверху есть панель меню, ведущая к другим экранам.
  • Компонент издания встроен в навигатор по вкладкам.При смене вкладок должно отображаться предупреждение.
  • Закрытие браузера.

Нужно ли перехватывать все эти события и подключаться во всех этих местах?Есть ли какой-нибудь фокус механизм?

1 Ответ

6 голосов
/ 03 августа 2011

Ответ на первый вопрос: ДА.

Вам необходимо просмотреть все возможные события выхода, которые могут повредить редактируемые в данный момент данные.

Что ж, теперь проблема в том, как управлятьэто правильно.Используя инфраструктуру MVC, вы запускаете соответствующие команды из ваших компонентов:

  • CHANGE_LIST_ITEM (новый элемент)
  • CHANGE_TAB (новая вкладка)
  • CHANGE_SCREEN (новый экран)

Затем каждая команда проверяет, сохранена ли текущая отредактированная вкладка или нет.Если нет, то отображается предупреждение.Иначе, если нет никаких изменений, это позволяет списку, средству выбора экрана и панели вкладок продолжить.

Таким образом, ваши компоненты (список, экраны, вкладки) должны реализовать некоторый механизм отката или предотвращать дефолт.Как правило, изменение их состояния должно быть разрешено центральным валидатором (в команде MVC).

В случае списка: я бы предположил, что список можно выбрать не щелчком мыши, а только программно.Вы устанавливаете слушателя на событие щелчка элемента списка.Если команда позволяет установить новый элемент, она уведомит список.В MVC обычно отправляют асинхронное сообщение, которое получает посредник списка.[[И даже более правильно: команда установит некоторые свойства модели (например, currentListItem) и модель, которая отправляет асинхронное сообщение.]]

Редактировать: Для события закрытия браузера вам нужно вызвать эксперта JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...