所以我有以下html:
<mat-form-field>
<input matInput id={{item.value.fieldID}} formControlName="view"
placeholder={{item.value.displayname}} />
<mat-error *ngIf="item.controls.view.valid"></mat-error>
<button mat-button *ngIf="item.value.view" matSuffix mat-icon-button aria-label="Clear" (click)="clear(i, j)">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>
我在FormArray中使用了反应形式。但是除此之外,我在formcontrol上遇到了事件方面的问题。感动是一个不错的。
我尝试使用:
*ngIf="item.value.view && item.controls.view.touched"
(blur)="item.controls.view.markAsUntouched();"
(focus)="item.controls.view.markAsTouched();"
但是当我单击按钮时,模糊将在按钮单击之前触发,因此在单击事件发生之前按钮将消失。
有什么办法解决这个问题吗?
答案 0 :(得分:0)
我自己弄清楚了。我将另一个事件称为mouseDown
。此事件将触发模糊事件的前端,也不会取消它。
所以我改变的是:
<button mat-button *ngIf="item.value.view" matSuffix mat-icon-button aria-label="Clear" (click)="clear(i, j)">
<mat-icon>close</mat-icon>
</button>
对此(带有模糊和聚焦事件):
<mat-icon *ngIf="item.value.view && item.controls.view.touched" matSuffix (mousedown)="clear(i, j);">close</mat-icon>