javascript - Angular 4 - Enfocar en el siguiente elemento con Enter
esta pregunta se ha hecho antes para AngularJS y Jquery, sin embargo necesito hacer esto en Angular 4 y es ligeramente diferente.
Situación:
Tengo un componente con una tabla (Tablecomponent). La tabla está llena de campos de entrada para los usuarios. Ahora quiero poder moverse entre estos campos de entrada con la tecla Enter también, además de solo con la tecla Tab.
He encontrado esta solución en otro lugar, pero no funciona porque "element" no tiene la función "focus()"
onKeyUp($event) {
if ($event.keyCode === 13) {
const element: any = event.srcElement.nextElementSibling;
if (element == null) {
return;
} else {
element.focus();
}
No estoy seguro, pero creo que lo primero que hay que hacer es obtener el siguiente Elemento (campo "input" aquí) y simplemente "enfocarlo".
Respuesta #1
Angular tiene una referencia de elemento elementRef que puedes usar y será más preciso para activar un evento como el evento key en una aplicación Angular.
// add it to your compoenent
constructor(private elementRef: ElementRef) { }
Entonces puedes enfocarlo usando
this.elementRef.nativeElement.focus();
