0
これは初めてのことです。異なるコンポーネントに複数のAngular @HostListenerがある場合の競合
私は'ESC'をリッスンするためにapp.componentに@Hostlistenerを持っています。 (グローバルリスナーのような働き)
@HostListener('document:keydown', ['$event'])
public onKeydownHandler(event: KeyboardEvent): void {
....... // listens for 'ESC'
}
と私は今、何が起こる別の@Hostlistenerでinput.component(入力フィールドでを 'ENTER' をリッスン)
@HostListener('keydown', ['$event'])
public onKeydownHandler(event: KeyboardEvent): void {
....... // listens for 'ENTER'
}
を持っています私が入力フィールドにいないとき、 'ESC'が検出されます。私が入力フィールドに入っているとき、 'ESC'は検出されません。
予想される動作:入力フィールド内でも「ESC」が検出されるはずです。
グローバルリスナーが期待どおりに動作しないようです。これは正しい動作ですか?
こんにちは、この質問について示す作業するデモですか? – Danaley
はい..エスケープしてキーを入力してください –
ディレクティブが入力フィールド(入力コンポーネントのホストリスナーではない)で使用されている場合、app.componentのグローバルホストリスナーと競合しないことを理解できますか? – Danaley