2 ответов:
Напишите директиву, в которой добавьте Листнер:
@Output('capsLock') capsLock: EventEmitter<Object>; @HostListener('window:keydown', ['$event']) onKeyDown(event: KeyboardEvent): void { const capsOn = event.getModifierState && event.getModifierState('CapsLock'); if(capsOn){ this.capsLock.emit(true); } }Добавьте его в основную оболочку div вашего компонента, и ваш компонент будет слушать 'emits', и как только он получит true, выскочит сообщение, подобное этому one. Измените его стиль (возможно, не серый фон) и размер (меньше, размер всплывающей подсказки), сделайте его скрытым и отображаемым с помощью *ngIf, условием которого является ответ от вашего слушателя (через @Output к компоненту).
Для получения подсказки, посмотрите на эту ссылку : http://valor-software.com/ngx-bootstrap/index-bs4.html#/popover
Я не думаю, что Angular может сделать это из коробки (AngularJS может).
Есть несколько библиотек, которые могут сделать это, хотя было бы полезно проверить capsLock (NPM, GitHub )
Вы можете использовать observable, чтобы проверить, включен ли caps lock, а затем сделать пользовательские вещи
capsLock.observe(function (result) { // Do stuff });Вот пример из readme Github: https://rawgit.com/aaditmshah/capsLock/master/demo.html
Comments