2017-06-09 1 views
3

J'essaie de faire une validation personnalisée et j'ai besoin d'ajouter de nouveaux valideurs pendant l'exécution. Ceci peut être accompli en utilisantComment faire pour itérer les validateurs FormControl existants

control.setValidators([control.validator, newValidator.toValidatorFn]) 

où le contrôle est une instance de AbstractControl.

OK, jusqu'ici tout est bien et dandy. Cependant, je voudrais vérifier si le validateur que j'ajoute a déjà été ajouté. Je voudrais également localiser plus tard le validateur que j'ai ajouté pour le manipuler davantage. Donc la question est: comment puis-je itérer à travers les validateurs qui sont attachés à certaine instance de AbstractControl?

+0

Copie possible de [Obtenir les validateurs présents dans FormGroup/FormControl] (https://stackoverflow.com/questions/43838108/get-validators-present-in-formgroup-formcontrol) – developer033

Répondre

2

Ce n'est pas possible d'après ce que je ressens.

En interne, setValidators est d'ajouter les validateurs (qui sont fonctions) à une propriété publique sur la classe AbstractControl nommée validator. L'inspection de la propriété validator (avec quelque chose comme console.log(control.validator)) vous montrera la fonction de validation complète qui sera exécutée pour le contrôle. Vous pouvez regarder et implementation here si vous êtes intéressé.