غريب لكنه نشأ ببراءة.
حاولت تنفيذ ميزة إعادة تعيين النموذج (مفقودة) عن طريق تبديل النموذج السابق خارج DOM والعودة مرة أخرى باستخدام NgIf مثبت بعلامة active
<form *ngIf="active"
(ngSubmit)="onSubmit()" #heroForm="ngForm">
يتحكم فيها المكون clear
بطريقة كهذه
clear() {
this.model = new Hero(42, '', '');
this.active = false;
setTimeout(()=> this.active=true, 0);
}
عندما يكون النموذج صالحًا (كما هو الحال في البداية) ، يؤدي النقر فوق مسح إلى إعادة تحميل الصفحة. إذا كان النموذج غير صالح (على سبيل المثال ، بدون اسم) ، فلا يوجد إعادة تحميل.
إليك نسخة عن طريق plunker:
http://plnkr.co/edit/GNhLbONEDHyApCm9vUeh
زر المسح من نوع "إرسال". لذا فإن النقر فوقه يؤدي إلى إرسال النموذج. من المفترض أن يقوم NgForm باعتراض حدث الإرسال ، ولكن نظرًا لأن NgIf يزيل عنصر النموذج من DOM ، فإن الاعتراض لا يحدث. يمكنك إصلاحه عن طريق ضبط نوع الزر على "زر".
شكرا. لم أكن أعلم أن <button>
_ بدون سمة النوع _ هو نفسه زر إرسال!
هذا يعالج المشكلة كما رأينا في برنامج plunker المنقح هذا: http://plnkr.co/edit/u3ltLP84JHn2VkoFKf46؟p=preview
إغلاق هذه المشكلة وفتح # 6822 الذي يستدعي ميزة reset
صريحة لاستبدال الاختراق الذي يوضحه هذا المكبس.
تم قفل هذه المشكلة تلقائيًا بسبب عدم النشاط.
يرجى تقديم مشكلة جديدة إذا كنت تواجه مشكلة مشابهة أو ذات صلة.
اقرأ المزيد عن سياسة قفل المحادثة التلقائي .
_تم تنفيذ هذا الإجراء تلقائيًا بواسطة روبوت.
التعليق الأكثر فائدة
زر المسح من نوع "إرسال". لذا فإن النقر فوقه يؤدي إلى إرسال النموذج. من المفترض أن يقوم NgForm باعتراض حدث الإرسال ، ولكن نظرًا لأن NgIf يزيل عنصر النموذج من DOM ، فإن الاعتراض لا يحدث. يمكنك إصلاحه عن طريق ضبط نوع الزر على "زر".