J'ai ce formulaire : http://jsfiddle.net/dfJeN/
Comme vous pouvez le voir, la valeur du nom de l'entrée est définie de manière statique :
name="username"
La validation du formulaire fonctionne bien (ajouter quelque chose et supprimer tout le texte de l'entrée, un texte doit apparaître).
J'essaie ensuite de définir dynamiquement la valeur du nom : http://jsfiddle.net/jNWB8/
name="{input.name}"
Ensuite, j'applique ceci à ma validation
login.{{input.name}}.$error.required
(ce modèle sera utilisé dans un ng-repeat) mais la validation de mon formulaire ne fonctionne pas. Elle est correctement interprétée dans mon navigateur (si j'inspecte l'élément, je vois login.username.$error.required).
Une idée ?
EDIT : Après avoir enregistré le champ d'application dans la console, il s'avère que le fichier
{{input.name}}
L'expression n'est pas interpolée. Mon formulaire a un attribut {{input.name}} mais pas de nom d'utilisateur.
MISE À JOUR : depuis la version 1.3.0-rc.3, name="{{input.name}}" fonctionne comme prévu. Veuillez consulter #1404
0 votes
Après quelques recherches, j'ai trouvé ceci : "Un scénario dans lequel l'utilisation de ngBind est préférée à la liaison {{ expression }} est lorsqu'il est souhaitable de mettre des liaisons dans le modèle qui est momentanément affiché par le navigateur dans son état brut avant qu'Angular ne le compile". Dans cette page docs.angularjs.org/api/ng.directive:ngBind mais cela semble être un bon début pour ce que j'essaie de faire. Ce post sera mis à jour si je trouve une solution.
0 votes
Il y a un problème ouvert sur github github.com/angular/angular.js/issues/1404
0 votes
L'une de ces réponses a-t-elle résolu votre problème ? Si c'est le cas, veuillez l'indiquer comme étant la réponse en cliquant sur la marque de contrôle sous son score.
0 votes
Voici un article de blog qui sera probablement utile à d'autres personnes confrontées à ce problème : thebhwgroup.com/blog/2014/08/angularjs-html-form-design-part-2