Я создаю почтовый ящик в угловом формате. И мне нужно будет сохранить черновик сообщения, когда всплывающее сообщение для отправки сообщения закрывается.mdDialog: поймать событие onClose
Я знаю, что есть несколько альтернатив:
scope.$on("$destroy", function() { saveMessage() });
и:
$mdDialog.show(...).finaly(function(){ saveMessage() });
Но оба являются недостаточными:
- Первый вызывается, когда диалог уже закрыт. Это связано с неприемлемыми требованиями (есть iFrame, который должен быть открыт)
- Вторая выходит за рамки контроллера mdDialog и несет ответственность за вызывающего абонента всплывающего окна, в то время как оно должно быть в самом всплывающем окне.
Итак, я ищу способ вызова функции ДО НАЧАЛА всплывающего окна. Нечто вроде scope.$on("$mdDialogBeforeClose", function() { saveMessage() });
Другим вариантом было бы подключить каждое закрытое событие. Кажется уродливым, но может быть решением. В этом случае мне нужно будет прислушиваться к кнопке эвакуации и выходить за пределы всплывающего окна (если бы я мог отключить эту функцию) ...
Любые лучшие идеи?
Thx!
EDIT:
Добавка вопрос: Как поймать побег-событие нажатия клавиши? Я попытался <md-dialog aria-label="List dialog" ng-keypress="keyPress($event)">
, но это даже не вызвало ...
Это имеет те же проблемы, что и во втором случае я описал. Мне нужно быть в контроллере модального. Мне нужно получить доступ к этой области, и я хотел бы, чтобы модальность была ответственна за сохранение сообщения на каждом закрытии (мы - команда разработчиков, и есть несколько мест, где открывается диалоговое окно) –
@ThomasStubbe Демонстрация как закрыть диалог с помощью функции в диалоговом контроллере. Вы хотите закрыть диалоговое окно, щелкнув снаружи? –
Демонстрация вообще не использует диалогового контроллера: 'диспетчер: SomeDialogController' должен быть добавлен в show-function. Внутри этого контроллера есть функция, которая должна быть выполнена до закрытия. –