[ ] 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
Saat arahan yang terkait dengan kontrol formulir dibuat dalam tampilan, validator dipicu.
Validator tidak boleh dipicu saat tampilan berubah . Formulir reaktif tidak boleh terikat dengan cara mereka direpresentasikan dalam tampilan. Sumber kebenaran mereka harus menjadi model .
https://stackblitz.com/edit/angular-reactive-forms-issue?file=app/app.component.ts
Perhatikan fakta bahwa pesan kesalahan sekarang hilang . Mengalihkan tampilan mengejek kasus penggunaan memiliki formulir mulitpart.
Jika ini adalah desain, saya tidak melihat alasan untuk itu. Kami sedang membuat tampilan tempat kami menulis model formulir data untuk dilihat. Tindakan membaca dari model seharusnya tidak memicu validator, sejauh yang saya mengerti. Seperti yang saya lihat, validator harus dijalankan ketika instance FormControl
dibuat dalam model. _Mengapa validator terpicu saat nilainya tidak berubah?_
<br i="34"/>
Angular version: 4.3.6<br i="35"/>
<!-- Check whether this is still an issue in the most recent Angular version -->
Ya terdengar benar.
Perubahan tampilan seharusnya tidak memengaruhi model dalam bentuk reaktif dan tidak ada perubahan pada model yang tidak akan memicu validasi.
Saya telah mengarahkannya ke https://github.com/angular/angular/blob/17eaef0311990e1a06c028f19bc6c63dcd775f31/packages/forms/src/directives/reactive_directives/form_group_directive.ts#L98 -L104
Itu selalu menjalankan validasi baru ( updateValueAndValidity()
), sementara itu hanya harus dilakukan jika ada validator baru yang diperkenalkan oleh direktif kontrol.
Juga mengganti nama fungsi menjadi addControlDirective()
dapat mengurangi kebingungan tentang apa yang dilakukannya.
Mungkin entah bagaimana terkait dengan #14376 memiliki keduanya tentang mengedit tampilan pada formulir reaktif dan sepertinya FormGroupDirective
salah.
Komentar yang paling membantu
Ya terdengar benar.
Perubahan tampilan seharusnya tidak memengaruhi model dalam bentuk reaktif dan tidak ada perubahan pada model yang tidak akan memicu validasi.
Saya telah mengarahkannya ke https://github.com/angular/angular/blob/17eaef0311990e1a06c028f19bc6c63dcd775f31/packages/forms/src/directives/reactive_directives/form_group_directive.ts#L98 -L104
Itu selalu menjalankan validasi baru (
updateValueAndValidity()
), sementara itu hanya harus dilakukan jika ada validator baru yang diperkenalkan oleh direktif kontrol.Juga mengganti nama fungsi menjadi
addControlDirective()
dapat mengurangi kebingungan tentang apa yang dilakukannya.Mungkin entah bagaimana terkait dengan #14376 memiliki keduanya tentang mengedit tampilan pada formulir reaktif dan sepertinya
FormGroupDirective
salah.