[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report <!-- Please search GitHub for a similar issue or PR before submitting -->
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
Lorsque la directive associée à un contrôle de formulaire est créée dans la vue, les validateurs sont déclenchés.
Les validateurs ne doivent modèle .
https://stackblitz.com/edit/angular-reactive-forms-issue?file=app/app.component.ts
Observez le fait que le message d'erreur a maintenant disparu . Basculer la vue se moque du cas d'utilisation d'une forme multipartite.
Si c'est à dessein, je n'en vois pas de raison. Nous créons une vue dans laquelle nous écrivons un modèle de formulaire de données à afficher. L'action de lire à partir du modèle ne devrait pas déclencher de validateurs, pour autant que je sache. À mon avis, les validateurs doivent être exécutés lorsque les instances FormControl
sont créées dans le modèle. _Pourquoi les validateurs sont-ils déclenchés lorsque la valeur n'a pas changé ?_
<br i="34"/>
Angular version: 4.3.6<br i="35"/>
<!-- Check whether this is still an issue in the most recent Angular version -->
Oui sonne bien.
Un changement dans la vue ne doit pas affecter le modèle dans les formulaires réactifs et aucun changement sur le modèle ne doit déclencher la validation.
Je l'ai identifié sur https://github.com/angular/angular/blob/17eaef0311990e1a06c028f19bc6c63dcd775f31/packages/forms/src/directives/reactive_directives/form_group_directive.ts#L98 -L104
Il exécute toujours une nouvelle exécution de validation ( updateValueAndValidity()
), alors qu'il ne devrait le faire que s'il y avait de nouveaux validateurs introduits par la directive de contrôle.
Renommer également la fonction en addControlDirective()
peut réduire la confusion sur ce qu'elle fait.
Peut être lié d'une manière ou d'une autre à #14376 car il s'agit à la fois de modifier la vue sur un formulaire réactif et il semble que FormGroupDirective
soit en cause.
Commentaire le plus utile
Oui sonne bien.
Un changement dans la vue ne doit pas affecter le modèle dans les formulaires réactifs et aucun changement sur le modèle ne doit déclencher la validation.
Je l'ai identifié sur https://github.com/angular/angular/blob/17eaef0311990e1a06c028f19bc6c63dcd775f31/packages/forms/src/directives/reactive_directives/form_group_directive.ts#L98 -L104
Il exécute toujours une nouvelle exécution de validation (
updateValueAndValidity()
), alors qu'il ne devrait le faire que s'il y avait de nouveaux validateurs introduits par la directive de contrôle.Renommer également la fonction en
addControlDirective()
peut réduire la confusion sur ce qu'elle fait.Peut être lié d'une manière ou d'une autre à #14376 car il s'agit à la fois de modifier la vue sur un formulaire réactif et il semble que
FormGroupDirective
soit en cause.