0

我在 Angular 2 表单中有一个简单的自定义控件,当您编辑该字段然后通过.markAsUntouched重置它时,它不会删除ng-touched类。

示例表单如下所示:

<form #editForm="ngForm">
    <input [(ngModel)]="title" name="title2" type="text"/>
    <app-textbox label="Template Driven Model" [showLabel]="true" 
     [(ngModel)]="title" name="title"> </app-textbox>
     <button (click)="resetTempalteDriven()">Reset Template Driven</button>
 </form>

在此示例中,独立输入控件正确复位。app-textbox 组件的 html 如下所示:

<div>
<div class="fg-line">
    <label *ngIf="label && showLabel" [ngClass]="{ 'font-bold': required }">{{label}}</label>
    <input type="text"   style="cursor: text" 
        [(ngModel)]="value" [required]="required" [disabled]="disabled" [placeholder]="placeholder" [id]="identifier" />
</div>

表单的重置如下所示:

  resetTempalteDriven(){ 

      this.editForm.form.markAsPristine();
      this.editForm.form.markAsUntouched();

      this.editForm.controls["title"].markAsUntouched();
   }

我已将整个应用程序放在这里https://github.com/jmarbutt/ng2-angular-issue

在触摸两个输入字段然后点击重置后,表单看起来像这样。 在此处输入图像描述

此时它们都应该是白色的。

所以我的问题是为什么 ng-touched 没有在markAsUntouched上正确删除?

4

1 回答 1

0

将按钮类型设置为按钮解决了我的问题

于 2020-12-01T07:47:45.660 回答