Je travaille sur plusieurs composants (directives) pour faciliter la validation des formulaires. J'aimerais que les composants soient conscients de l'état de l'élément d'entrée associé (tel que requis). Par exemple ...Accédez directement à l'élément de formulaire à partir de form.FormController?
Markup:
<form name="editUser">
<control-label input="editUser.name">Name</control-label>
<input type="text" name="name" ng-model="user.name" required/>
</form>
directive:
app.directive("controlLabel", function() {
return {
restrict: "E",
replace: true,
transclude: true,
scope: {
input: "=input"
},
template:
'<label class="control-label">'+
'<span ng-transclude>{{label}}</span>'+
'<span ng-if="input.required"> (required!)</span>'+ // doesn't work?
'</label>'
};
});
Sortie:
<form name="editUser">
<label>
<span>Name</span>
<span>(required!)</span>
</label>
<input type="text" name="name" ng-model="user.name" required/>
</form>
La source pour form.FormController laisse moi croire que ce n'est pas possible. Y a-t-il un moyen d'avoir au moins accès aux attrs sur l'élément? J'ai pensé utiliser un décorateur, mais jusqu'ici je n'ai pas été capable de comprendre comment cela serait fait.
J'ai besoin de l'indicateur d'édition pour toujours afficher, pas seulement sur $ error – Brian
@Brian: Utilisez 'input. $ Validators.required' alors. Mis à jour la réponse ci-dessus. – codef0rmer
merci @ codeF0rmer, c'est exactement ce que je cherchais. Je ne savais même pas $ validateurs existaient: P – Brian