web-dev-qa-db-fra.com

Angular définir dynamiquement ng-messages sur l'attribut name

Je crée dynamiquement des entrées et souhaite également valider chacune d'entre elles, mais je ne peux pas définir correctement l'attribut ng-messages sur la propriété de nom de champ qui est générée dynamiquement.

<input ng-model="sub.name" name="subName{{$index}}" class="form-control" placeholder="name" required maxlength="20" />
         <div class="field-error" ng-messages="form.subName{{$index}}.$error" ng-show="form.Name.$touched" role="alert">
               <div ng-message="required">Name is required.</div>
          </div>

J'ai eu un problème avec la deuxième ligne où j'ai défini dynamiquement les ng-messages sur ng-messages. Comment puis-je faire ceci?

28
CSharpBeginner

L'accès aux propriétés de votre objet formulaire peut également se faire à l'aide de crochets, ce qui devrait résoudre votre problème:

<input ng-model="sub.name" name="subName{{$index}}" class="form-control" placeholder="name" required maxlength="20" />
<div class="field-error" ng-messages="form['subName' + $index].$error" ng-show="form.Name.$touched" role="alert">
    <div ng-message="required">Name is required.</div>
</div>
56
Helori