Je crée un formulaire avec Angular2 et j'ai créé deux validateurs personnalisés pour le champ d'adresse email.Angular2: comment appliquer deux ou plusieurs validateurs au même contrôle?
Le premier validateur vérifie la validité de l'e-mail, le second validateur (asynchrone) vérifie si l'adresse e-mail existe déjà dans la base de données. En outre, je voudrais ajouter un troisième validateur pour une autre vérification.
Voici mon code:
'email': ['', [validateEmail(), thirdValidator()], asyncValidator]
Le comportement que je veux est la suivante: uniquement lorsque le premier validateur valide le contrôle, le second validateur doit commencer. Et seulement lorsque le deuxième validateur se termine, le troisième validateur peut commencer sa validation.
Comment l'atteindre?
Je ne connaissais pas cette méthode ... de toute façon il ne semble pas être la réponse à ma question: «Composer plusieurs validateurs en une seule fonction qui renvoie l'union des cartes d'erreur individuelles.» N'est-ce pas utiliser '[validateEmail(), thirdValidator()]'? – smartmouse
J'ai mis à jour la réponse. Les validateurs ne fonctionnent pas dans l'ordre indiqué. Nous pouvons avoir plusieurs erreurs sur un champ de c. Cependant, nous pouvons les contrôler manuellement comme dans l'exemple ci-dessus. –
Ok, ça va pour moi. Je vous remercie. Quoi qu'il en soit, il semble que les validateurs en séquence fonctionnent en AND. Est-ce correct? De plus, pouvez-vous me dire quelle est la différence entre mettre des validateurs en séquence et utiliser la méthode 'composer'? – smartmouse