Ответ 1
<input (keydown.Tab)="onKey($event)">
Как я могу обработать событие keypress
Tab в Angular 2?
Я взял это из Angular keyCode
чтобы получить keyCode
. Это работает хорошо, когда я нажимаю другие клавиши, но когда я нажимаю Tab, ничего не происходит.
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: '<input (keyup)="onKey($event)">
<p>{{values}}</p>'
})
export class AppComponent {
values = '';
onKey(event: any) {
this.values += event.keyCode+ ' | ';
}
}
Кроме того, это правильный способ сделать это в Angular 2?
<input ng-keydown="($event.keyCode == 9) &&
signal('something')" />
<input (keydown.Tab)="onKey($event)">
У меня была аналогичная проблема. Сначала я попытался использовать $event
в шаблоне, но после некоторого чтения здесь, кажется, что передача $event
не является чем-то вроде Angular команда поощряет (см. ссылку для подробностей). Они рекомендуют использовать опорные переменные шаблона. Это было хорошо, пока я не попытался использовать вкладку, и я получил то, что получал @freeNinja; вкладка будет работать, но затем направьте фокус на верхнюю часть страницы. Ответ @Günter Zöchbauer в комментариях выше работал у меня. Добавление false после вызова метода остановило передачу фокуса.
(keydown.tab)="saveEntry(i, newCost.value); false
<input (keypress)="someFunction($event.target.value)"/>