javascript - event - ng focus angular 2
Rutas angulares/autofoco de entrada (2)
Estoy usando una ruta angular. Cada página (ruta) tiene un campo de entrada. He utilizado con éxito el enfoque automático de atributos en la primera página. Cuando navego a las otras páginas, la entrada no se autofoco. Volver a la primera página no autofoca la entrada nuevamente. Ahora entiendo por qué no funciona, pero me gustaría saber si hay una manera de lograr esto.
Soy nuevo en Angular y no estoy seguro de entender lo que leo sobre ngFocus:
ngFocus no es lo que estás buscando. Esa directiva es más un desencadenante de eventos. Ejecutará tu código siempre que el usuario enfoque el cuadro de texto.
Lo que quiere es algo así como esta directiva personalizada:
angular
.module(''myApp'')
.directive(''autofocus'', function($timeout) {
return {
link: function(scope, element, attrs) {
$timeout(function() {
element.focus();
});
}
}
});
Inspirado por http://ericclemmons.com/angular/angular-autofocus-directive/
En mi caso, la respuesta de Travis Collins no funcionó porque de alguna manera, el elemento era una serie de entradas.
Entonces tengo que usar la versión ligeramente modificada. Nota, con funciones de flecha.
.directive(''autofocus'', ($timeout) => ({
link: (scope, element: any, attrs) => {
if (!element.focus && element.length) {
element = element[0];
}
$timeout(() => {
element.focus();
});
}
}));