236 votes

Comment puis-je conditionnellement nécessitent des entrées d'un formulaire avec AngularJS?

Supposons que nous construisons une application de carnet d'adresses (exemple artificiel) avec AngularJS. Nous avons un formulaire de contacte et qui dispose d'entrées pour l'email et le numéro de téléphone, et nous voulons le besoin de l'un ou de l'autre, mais pas les deux. Nous voulons seulement le email d'entrée pour être requise si l' phone d'entrée est vide ou non valide, et vice versa. Angulaire a un required directive, mais il n'est pas clair à partir de la documentation comment l'utiliser dans ce cas. Alors, comment peut -, nous avons besoin d'un champ de formulaire? Écrire une coutume de la directive?

469voto

Christian Smith Points 1630

Il n'y a pas besoin d'écrire une coutume de la directive. Angulaire de la documentation est bonne, mais pas complète. En fait, il existe une directive appelée ngRequired, qui prend Angulaire de l'expression.

<input type='email'
       name='email'
       ng-model='contact.email' 
       placeholder='your@email.com'
       ng-required='!contact.phone' />

<input type='text'
       ng-model='contact.phone'             
       placeholder='(xxx) xxx-xxxx'
       ng-required='!contact.email' />  

Voici un exemple plus complet: http://jsfiddle.net/uptnx/1/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X