Angulaire 2 - sélectionnez l'objet du DOM et définissez le focus
Je peux y trouver une telle chose dans la documentation ou google des exemples.
J'ai beaucoup de zones d'entrée dans un div et j'ai besoin de sélectionner un en particulier de la programmation. Comment faire ?
Quelque chose comme
<div>
<input type="text" name="txt1" />
<input type="text" name="txt2" />
<input type="text" name="txt3" />
<input type="text" name="txt4" />
<input type="text" name="txt5" />
<input type="text" name="txt6" />
</div>
<button (click)="selectSample()" />
selectSample() {
?????????('txt3').focus();
console.log('Button pressed, txt3 has been selected');
}
source d'informationauteur Marco Jr
Vous devez vous connecter pour publier un commentaire.
Plunker exemple
Prendre un coup d'oeil à la
ViewChild
(etViewChildren
comme Gunter l'indique) des annotations.Vous pouvez faire quelque chose comme ceci:
Voici une Directive de mise en œuvre, par Eric suggestion:
Plunker
J'aime la directive approche, parce que nous n'avons pas besoin d'ajouter
#input
pour le HTML, et de la directive sait comment se concentrer en lui-même.J'ai utilisé
Array.some()
juste pour être un peu plus efficace.Mon approche serait de se fonder sur une Directive et son sélecteur, pour supprimer la nécessité d'une itération sur un tableau, et pour éviter les variables locales (je n'aime pas l'idée d'avoir un trop grand nombre d'entre eux sur mon point de vue), en tant que Marque est mentionnée.
Je suis en supposant que les utilisateurs veulent toujours seul et il est codé en dur, ce qui est suffisant pour le cas où l'utilisateur a demandé à propos. Avoir un élément dynamique pour se concentrer irait à l'encontre de cette approche.
La directive
Le composant serait essentiellement la même dans chaque réponse
Voici la plnkr.