На моей доске (написано на Angular 4) диалоговые окна открываются, как показано ниже:
Импорт ActivatedRoute, Router
import { ActivatedRoute, Router } from '@angular/router';
Добавление ссылок Router и ActivatedRoute в конструкторе
constructor (
...
private _router: Router,
private _activatedRoute: ActivatedRoute,
...)
и его использованиениже:
this._router.navigate(['./', { outlets: { somemodal: 'somemodal', dialogs: null }, relativeTo: this._activatedRoute }]);
Требование при нажатии клавиши escape Esc должно отображаться модальное удаление (другой модал уже реализован и работает).
Но в QA возникла проблема , как при других всплывающих окнах (например, отсканированное контрольное изображение / повторное сканирование / всплывающее окно с идентификатором клиента /)появляются всплывающие окна с сообщениями об ошибках), затем при нажатии Esc эти всплывающие окна должны закрываться первыми.
Если других всплывающих окон нет, то откроется только модал удаления, чего в данный момент не происходит.При нажатии Esc он все еще открывает всплывающее окно удаления.
Вопрос: Как определить наличие других всплывающих окон.
Примечание : В самом начале разработки, в некотором общем сервисе, мы могли бы создать флаг типа isPopupOpened: boolean = true
, и при закрытии того же всплывающего окна его следует установить в isPopupOpened = false
.Но это не реализовано, и несколько модалов реализованы, и все они открываются на разных этапах в моей доске.Пользователь может нажать Esc в любой момент времени.Вот я и хочу к какому же решению.