Прослушивание ключевых событий в документах 5 - PullRequest
0 голосов
/ 23 мая 2018

Мы разрабатываем модал на Angular 5. Для удобства пользователь должен иметь возможность закрыть его клавишей Escape или выбрать опцию по умолчанию, нажав клавишу возврата.Я создал @HostListener в своем ModalComponent:

@HostListener('window:keydown', ['$event'])
  keyEvent(event: KeyboardEvent) {
    if (event.keyCode === 13) { // Return key
      const index = this.modal.buttons.findIndex(button => button.default);
      if (index >= 0) {
        this.modal.buttons[index].fnc();
      }
    } else if (event.keyCode === 27) { // Escape key
      this.closeModalAlt();
    }
  }

Однако, прежде чем HostListener получит какое-либо ключевое событие, нужно нажать на модальное .Когда модал открывается и нажимается клавиша, ничего не происходит.Это очень неудобно.

Я предполагаю, что причиной такого поведения является ModalComponent, только слушающий ключевые события, когда он сфокусирован.Мне нужно HostListener, чтобы прослушивать события ключа во всем документе ( Я уже пробовал @HostListener('document:keydown',..), это тоже не сработало). Как заставить @HostListener прослушивать все ключевые события?

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