Veo muchas publicaciones sobre cómo configurar el enfoque automático en una entrada archivada en angularjs mediante la creación de una directiva o enfoque automático HTML. ¿Existe una manera rápida y fácil de configurar el enfoque en angular (angular 2, angular 4, etc.)
En su html, agregue #nameit para obtener su referencia en el código del componente.
<input type="text" name="me" #nameit>Luego aplique fouces automáticos en él.
@ViewChild('nameit') private elementRef: ElementRef; public ngAfterViewInit(): void { this.elementRef.nativeElement.focus(); }La respuesta de Aniruddha Das funciona bien en algunos casos. Sin embargo, si esto se aplica a un formulario basado en una plantilla con la validación requerida, es posible que obtenga el siguiente error:
ExpressionChangedAfterItHasBeenCheckedError: la expresión ha cambiado después de que se verificó. Valor anterior: 'falso'. Valor actual: 'verdadero'.
Una solución a esto es envolver la llamada focus() dentro de ngInit() en lugar de ngAfterViewInit(). Entonces, ampliando la respuesta de Aniduddha:
En su html, agregue la #namedReference al componente:
<input type="text" placeholder="Your full name" name="name" ngModel #fullName="ngModel" required #nameit>Luego usa onNgInit() para aplicarle el enfoque automático:
@ViewChild('nameit') private elementRef: ElementRef; ngOnInit() { this.elementRef.nativeElement.focus(); }<input id="name" type="text" #myInput /> {{ myInput.focus() }} Agrega {{ myInput.focus() }} a tu plantilla.