angular - Angular mat-icon 聚焦显示
问题描述
所以我有以下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 的反应形式。但除此之外,我对表单控件上的事件有疑问。感动是一个很好的。
我尝试使用:
*ngIf="item.value.view && item.controls.view.touched"
(blur)="item.controls.view.markAsUntouched();"
(focus)="item.controls.view.markAsTouched();"
但是当我单击按钮时,会在单击按钮之前触发模糊,因此按钮会在单击事件发生之前消失。
知道如何解决这个问题吗?
解决方案
我自己想通了。发生的事情是我将不同的事件称为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>
推荐阅读
- mysql - 函数内部的MySQL调用过程以进行计数
- javascript - 输入类型文件点击 - 删除之前添加的文件
- ruby-on-rails - 如何在 SSL 模式下使用 Puma 服务器运行 Rails/Capybara?
- c# - ASP.NET MVC 5 数据库更新
- react-native - 如何正确使用 Expo.DocumentPicker.getDocumentAsync。[博览会] [ReactNative]
- java - 在 java 项目中打开和关闭 2 个不同的扫描仪
- testing - 如何在 Scalatra 测试请求中提供 cookie?
- javascript - 使容器消失后显示带有按钮的容器
- javascript - 如何在asp net中的dbmodel的剃刀视图中显示来自父类的更多字段
- javascript - Manually creating a object list on Mongoose