[ ] 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
مخطئ.