Angular: النموذج: يتم إعادة تحميل الصفحة عند إزالة / استعادة NgForm عبر NgIf

تم إنشاؤها على ١ فبراير ٢٠١٦  ·  3تعليقات  ·  مصدر: angular/angular

غريب لكنه نشأ ببراءة.

حاولت تنفيذ ميزة إعادة تعيين النموذج (مفقودة) عن طريق تبديل النموذج السابق خارج 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 ، فإن الاعتراض لا يحدث. يمكنك إصلاحه عن طريق ضبط نوع الزر على "زر".

ال 3 كومينتر

زر المسح من نوع "إرسال". لذا فإن النقر فوقه يؤدي إلى إرسال النموذج. من المفترض أن يقوم NgForm باعتراض حدث الإرسال ، ولكن نظرًا لأن NgIf يزيل عنصر النموذج من DOM ، فإن الاعتراض لا يحدث. يمكنك إصلاحه عن طريق ضبط نوع الزر على "زر".

شكرا. لم أكن أعلم أن <button> _ بدون سمة النوع _ هو نفسه زر إرسال!
هذا يعالج المشكلة كما رأينا في برنامج plunker المنقح هذا: http://plnkr.co/edit/u3ltLP84JHn2VkoFKf46؟p=preview

إغلاق هذه المشكلة وفتح # 6822 الذي يستدعي ميزة reset صريحة لاستبدال الاختراق الذي يوضحه هذا المكبس.

تم قفل هذه المشكلة تلقائيًا بسبب عدم النشاط.
يرجى تقديم مشكلة جديدة إذا كنت تواجه مشكلة مشابهة أو ذات صلة.

اقرأ المزيد عن سياسة قفل المحادثة التلقائي .

_تم تنفيذ هذا الإجراء تلقائيًا بواسطة روبوت.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات