J'ai un tableau qui est créé en utilisant ng-repeat. Je veux ajouter la validation à chaque élément du tableau. Le problème est que chaque cellule de saisie porte le même nom que la cellule située au-dessus et au-dessous d'elle. J'ai essayé d'utiliser la fonction {{$index}}
pour nommer les entrées, mais bien que les littéraux de chaîne en HTML semblent corrects, cela fonctionne maintenant.
Voici mon code à ce jour :
<tr ng-repeat="r in model.BSM ">
<td>
<input ng-model="r.QTY" class="span1" name="QTY{{$index}}" ng-pattern="/^[\d]*\.?[\d]*$/" required/>
<span class="alert-error" ng-show="form.QTY{{$index}}.$error.pattern"><strong>Requires a number.</strong></span>
<span class="alert-error" ng-show="form.QTY{{$index}}.$error.required"><strong>*Required</strong></span>
</td>
</tr>
J'ai essayé de retirer le {{}}
à partir de l'index, mais cela ne fonctionne pas non plus. Pour l'instant, la propriété de validation de l'entrée fonctionne correctement, mais le message d'erreur ne s'affiche pas.
Quelqu'un a-t-il des suggestions ?
Edit : En plus des excellentes réponses ci-dessous, voici un article de blog qui traite de cette question de manière plus détaillée : http://www.thebhwgroup.com/blog/2014/08/angularjs-html-form-design-part-2/
5 votes
Pour ceux qui lisent ceci en 2015... la réponse la plus votée n'est plus la bonne. Regardez plus bas. :)
0 votes
Ce site semble être la réponse "pour 2015" dont parle @WillStrohl.
0 votes
Quelle est l'étiquette appropriée pour les SO ici ? Devrais-je laisser la réponse acceptée puisqu'elle était correcte à l'époque ou accepter la réponse correcte d'aujourd'hui ? Je veux juste que ce fil apparemment populaire soit utile aux nouveaux visiteurs.
0 votes
@PFranchise, je ne sais pas mais je pense qu'une note visible à ce sujet pourrait aider. Peut-être en tant que modification de votre question, de sorte que la note reste là où plus de gens peuvent la voir.