Angular: Π’Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ Ρ„ΠΎΡ€ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ просмотрС (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ) создании

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 28 сСнт. 2017  Β·  1ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: angular/angular

Π― ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽ ...


[ ] 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

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ консоль.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ _Toggle visiblity_, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΈ создании ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.

Какова мотивация / Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования для измСнСния повСдСния?

  1. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ с Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… шагов.
  2. НаТмитС _ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ошибки Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ_, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (это имитация Ρ€ΡƒΡ‡Π½ΠΎΠΉ установки ошибки послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π΅Ρ€Π½ΡƒΠ»Π°ΡΡŒ ΠΈΠ· бэкэнда)
  3. НаТмитС _Toggle visiblity_, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ исчСз. Π’ консоли Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ происходит.
  4. НаТмитС Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ появился элСмСнт управлСния. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΆΡƒΡ€Π½Π°Π»Ρ‹ консоли, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сообщСниС ΠΎΠ± ошибкС исчСзло . ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ прСдставлСния - это имитация Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.


Если это Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ, я Π½Π΅ Π²ΠΈΠΆΡƒ для этого ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. ΠœΡ‹ создаСм прСдставлСниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΡ‹ пишСм модСль Ρ„ΠΎΡ€ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… для просмотра. Насколько я понимаю, дСйствиС чтСния ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹. На ΠΌΠΎΠΉ взгляд, Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ экзСмпляры 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 -->
P4 forms validators medium confirmed triage #1 bufix

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”Π° Π·Π²ΡƒΡ‡ΠΈΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
ИзмСнСниС Π² прСдставлСнии Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° модСль Π² Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ.

Π― ΡƒΠΊΠ°Π·Π°Π» Π½Π° 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 .

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ