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?
Réponse
Trop de publicités?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/