Событие Handle Tab

Как я могу обработать событие 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')" />

Ответ 1

 <input (keydown.Tab)="onKey($event)">

Ответ 2

У меня была аналогичная проблема. Сначала я попытался использовать $event в шаблоне, но после некоторого чтения здесь, кажется, что передача $event не является чем-то вроде Angular команда поощряет (см. ссылку для подробностей). Они рекомендуют использовать опорные переменные шаблона. Это было хорошо, пока я не попытался использовать вкладку, и я получил то, что получал @freeNinja; вкладка будет работать, но затем направьте фокус на верхнюю часть страницы. Ответ @Günter Zöchbauer в комментариях выше работал у меня. Добавление false после вызова метода остановило передачу фокуса. (keydown.tab)="saveEntry(i, newCost.value); false

Ответ 3

<input (keypress)="someFunction($event.target.value)"/>