Ваш код работает, при условии, что 'S' в нижнем регистре. accesskey
имеет разные сочетания клавиш для браузера и ОС: в вашем примере в Windows и Chrome нажатие [Alt] + [s]
будет фокусировать элемент.
Если вам нужна другая комбинация клавиш, вам необходимо прослушать нажатие клавиши. Это может быть сделано в простом JS довольно просто, то есть в этом примере.
Тем не менее, «угловой» способ означает это без непосредственного взаимодействия с DOM. Это можно сделать, введя Renderer2
и настроив прослушиватель событий таким образом:
constructor(private _r: Renderer2) {}
ngOnInit() {
this._r.listen(document, 'keyup', (event) => {
if(event.keyCode === 83) {
// assuming you get a reference to the input element
this.input.nativeElement.click();
}
})
}
Еще лучше, с Observables:
ngOnInit() {
Observable.fromEvent(document, 'keyup').pipe(
filter(s => s.keyCode === 83)
).subscribe(s => this.doStuff())
}
Это также можно легко включить в директиву.