[ ] 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
ΠΠΎΠ³Π΄Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°, ΡΠ²ΡΠ·Π°Π½Π½Π°Ρ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ, Π°ΠΊΡΠΈΠ²ΠΈΡΡΡΡΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ.
ΠΠ°Π»ΠΈΠ΄Π°ΡΠΎΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ . Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΡΠΎΡΠΌΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ .
https://stackblitz.com/edit/angular-reactive-forms-issue?file=app/app.component.ts
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈΡΡΠ΅Π·Π»ΠΎ . ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ - ΡΡΠΎ ΠΈΠΌΠΈΡΠ°ΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½ΠΎΠΉ ΡΠΎΡΠΌΡ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ, Ρ Π½Π΅ Π²ΠΈΠΆΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΡΠΈΠ½Ρ. ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΠΏΠΈΡΠ΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΎΡΠΌΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ. ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ FormControl
. _ΠΠΎΡΠ΅ΠΌΡ ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ? _
<br i="34"/>
Angular version: 4.3.6<br i="35"/>
<!-- Check whether this is still an issue in the most recent Angular version -->
ΠΠ° Π·Π²ΡΡΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π² ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΡΠΎΡΠΌΠ°Ρ
, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
Π― ΡΠΊΠ°Π·Π°Π» Π½Π° https://github.com/angular/angular/blob/17eaef0311990e1a06c028f19bc6c63dcd775f31/packages/forms/src/directives/reactive_directives/form_group_directive.ts#L98 -L104
ΠΠ½ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ³ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ( updateValueAndValidity()
), Ρ
ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² addControlDirective()
ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ # 14376, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²ΠΈΠ½ΠΎΠ²Π°Ρ FormGroupDirective
.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ° Π·Π²ΡΡΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π»ΠΈΡΡΡ Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ Π² ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠΎΡΠΌΠ°Ρ , ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ.
Π― ΡΠΊΠ°Π·Π°Π» Π½Π° https://github.com/angular/angular/blob/17eaef0311990e1a06c028f19bc6c63dcd775f31/packages/forms/src/directives/reactive_directives/form_group_directive.ts#L98 -L104
ΠΠ½ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ³ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ (
updateValueAndValidity()
), Ρ ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΡ.Π’Π°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²
addControlDirective()
ΠΌΠΎΠΆΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π°Π΅Ρ.ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ # 14376, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²ΠΈΠ½ΠΎΠ²Π°Ρ
FormGroupDirective
.