Auto focus en ng-repeat dans angularjs
J'utilise ng-repeat pour obtenir plusieurs numéros de téléphone
<div ng-repeat="phone in phones">
<input ng-model="phone" type="text" autofocus="autofocus">
</div>
<a ng-click="addPhone()">Add Phone</a>
Dans les contrôleurs
$scope.addPhone = function() {
$scope.phones.add('');
}
Chaque fois que j'ajoute un nouveau téléphone, il est automatiquement autofocus de l'entrée. Il fonctionne très bien. Mais quand je reload(ouvert à partir du lien) le point de vue, il passe à la dernière entrée. Comment puis-je éviter de l'autofocus à la première fois, le point de vue des charges. Seulement je veux autofocus, quand j'ajoute un nouveau téléphone.
OriginalL'auteur Fizer Khan | 2014-01-25
Vous devez vous connecter pour publier un commentaire.
Essayer:
JS:
DÉMO
Solution à l'aide de l'attribut personnalisé:
JS:
DÉMO
Bunny: c'est vraiment un bon point. Merci
Je viens de tester cette solution (DÉMO plunker lien avec Chrome v52: je n'ai pas l'accent sur la dernière ENTRÉE ... cette solution Pourrait être obsolète?
vous obtenez concentrer uniquement lorsque vous ajoutez un nouveau téléphone. Si vous voulez avoir le focus sur le chargement de la page, vous devez définir la valeur par défaut de l'indice de
focusIndex
: plnkr.co/modifier/lN5W94oDeiqR6HMUFMqz?p=previewAu lieu d'utiliser la condition personnalisé-autofocus="$index == focusIndex" il suffit d'utiliser la coutume-autofocus="$last"
OriginalL'auteur Khanh TO
Vous pouvez utiliser cette directive:
https://github.com/aikus/ng-focus-if/blob/master/ng-focus-if.js
Par exemple:
OriginalL'auteur Nikita
Ce qui se passe est que vous avez une liste d'entrées qui est exigeant la mise au point lorsque la page se charge en même temps. Depuis la dernière entrée rend dernier, elle obtient toujours la mise au point automatique.
La solution serait d'appliquer le
autofocus
attribut en cas de besoin.Contrôleur:
Cela ne fonctionne pas avec Chrome
Attributs booléens en HTML ne sont que de fausses quand elles n'existent pas. stackoverflow.com/a/25449778/41908
OriginalL'auteur ncabral
Avoir l'autofocus plusieurs fois dans votre page n'est pas interdit, mais ne regarde pas d'un droit fondé sur la documentationm, https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input
Il dit
Only one form element in a document can have the autofocus attribute
Je ne voudrais pas utiliser
autofocus
dansng-repeat
et régler manuellement la mise au point après est ajoutée.OriginalL'auteur allenhwkim