我在 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上正确删除?