0

Je voudrais obtenir toutes les erreurs d'un formulaire. J'ai essayé d'utiliser l'exemple en direct qui est venu avec Angular documentation, et je l'ai modifié en ajoutant required au premier champ:Angular: que signifie myForm.errors?

createForm() { 
    this.heroForm = this.fb.group({ 
     name: ['', Validators.required], 
     secretLairs: this.fb.array([]), 
     power: '', 
     sidekick: '' 
    }); 
} 

https://plnkr.co/edit/6b1paWOlKtXnDn1VVCyP

Comme vous pouvez le voir, si vous effacez le champ name il déclenche la required validateur et control liés à la zone de nom a un objet d'erreurs ... mais errors propriété de myForm objet est toujours null. Pourquoi?

Ne devrait-il pas contenir un objet avec toutes les erreurs qui sont déclenchées par les validateurs des contrôles enfants? Alors, que signifie errors?

Répondre

1

Vous devrez parcourir les commandes du formulaire et voir si elles contiennent des erreurs une par une. Et je pense que vous pouvez avoir des validateurs sur le groupe lui-même, de la même manière que vous auriez une validation sur un seul contrôle de formulaire.

+0

Oui, je sais, mais cela ne répond pas à ma question ... – smartmouse

+0

Il devrait techniquement contenir les erreurs de ses frères et soeurs, mais dans mon cas, il ne le fait pas non plus. Je ne sais pas si c'est un comportement intentionnel ou un bug, mais si vous voulez simplement atteindre votre objectif de collecte de toutes les erreurs dans le formulaire, vous pouvez vérifier [ceci] (https://stackoverflow.com/questions/40680321/get -all-validation-errors-from-angular-2-formgroup) question – Abdel

+1

Je peux confirmer que c'est un comportement prévu, jetez un oeil à [this] (https://github.com/angular/angular/issues/11530) problème – Abdel