2017-02-15 7 views
2

角度キー2のTabキー押しイベントを処理するにはどうすればよいですか?これを角度のDOCから取得してkeyCodeを取得しました。 。ハンドルタブイベントの角度2

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+ ' | '; 
    } 
} 

また、これは私が同様の問題を抱えていた角度2

<input ng-keydown="($event.keyCode == 9) && 
     signal('something')" /> 

答えて

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

ありがとうございました! div要素にも使用できますか? – freeNinja

+0

divがフォーカスイベントとキーボードイベントを受け取れるように、 'tabundex =" 0 "'を追加する必要があります。 –

+0

ありがとうございました!それは私のために働く。 Tabのデフォルトのイベントを防ぐ方法はありますか? event.preventDefault()? – freeNinja

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

でそれを行うための正しい方法です。私は最初に$eventをテンプレートで使用しようとしましたが、少し読んだ後にhereと表示されています。$eventは、Angularチームが推奨するものではありません(詳細はリンクを参照してください)。テンプレート参照変数を使用することをお勧めします。タブを使用しようとするまでこれは問題なく、@freeNinjaが取得していたものを取得しました。タブは機能しますが、フォーカスをページの上部に向けます。上記のコメントの@GünterZöchbauerの答えは私のために働いた。メソッド呼び出しの後にfalseを追加すると、フォーカスが転送されなくなりました。 (keydown.tab)="saveEntry(i, newCost.value); false