Angular 7:使用下拉框上的 x 按钮清除选择
Angular 7: Clear selection with x-button on a dropdown box
我想我可以将 Angular 中的示例合并为 dropdown and the Input with clear box 到:
<mat-form-field >
<mat-select placeholder="Country" [(value)]="selectedCountry" (selectionChange)="emitItemChanges()">
<div *ngFor="let item of lstItems|async">
<mat-option *ngIf="addItem(item)" [value]="item">{{item.title}}</mat-option>
</div>
</mat-select>
<button mat-button *ngIf="selectedCountry" matSuffix mat-icon-button aria-label="Clear"
(click)="selectedCountry=undefined">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>
接近预期的方式
清除输入。我现在面临的问题是它立即打开选择框。无论如何如何防止这种行为?
我知道还有其他清除选择的解决方案。我想知道这种方法是否可行?
(click)="selectedCountry=undefined; $event.stopPropagation()"
有帮助!感谢@Sachila :-)
完整代码如下:
<button mat-button *ngIf="selectedCountry" matSuffix mat-icon-button
aria-label="Clear" (click)="selectedCountry=undefined; $event.stopPropagation()">
<mat-icon>close</mat-icon>
反应形式示例
$event.stopPropagation()
- 无法再次打开 select
<mat-form-field>
<mat-select formControlName="team" placeholder="Team">
<mat-option *ngFor="let team of availableTeams" [value]="team.id">{{team.name}}</mat-option>
</mat-select>
<button *ngIf="form.controls.team.value"
matSuffix
mat-icon-button
type="button"
aria-label="Clear"
(click)="form.controls.team.setValue(null); $event.stopPropagation()">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>
我想我可以将 Angular 中的示例合并为 dropdown and the Input with clear box 到:
<mat-form-field >
<mat-select placeholder="Country" [(value)]="selectedCountry" (selectionChange)="emitItemChanges()">
<div *ngFor="let item of lstItems|async">
<mat-option *ngIf="addItem(item)" [value]="item">{{item.title}}</mat-option>
</div>
</mat-select>
<button mat-button *ngIf="selectedCountry" matSuffix mat-icon-button aria-label="Clear"
(click)="selectedCountry=undefined">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>
接近预期的方式
清除输入。我现在面临的问题是它立即打开选择框。无论如何如何防止这种行为?
我知道还有其他清除选择的解决方案。我想知道这种方法是否可行?
(click)="selectedCountry=undefined; $event.stopPropagation()"
有帮助!感谢@Sachila :-)
完整代码如下:
<button mat-button *ngIf="selectedCountry" matSuffix mat-icon-button
aria-label="Clear" (click)="selectedCountry=undefined; $event.stopPropagation()">
<mat-icon>close</mat-icon>
反应形式示例
$event.stopPropagation()
- 无法再次打开 select
<mat-form-field>
<mat-select formControlName="team" placeholder="Team">
<mat-option *ngFor="let team of availableTeams" [value]="team.id">{{team.name}}</mat-option>
</mat-select>
<button *ngIf="form.controls.team.value"
matSuffix
mat-icon-button
type="button"
aria-label="Clear"
(click)="form.controls.team.setValue(null); $event.stopPropagation()">
<mat-icon>close</mat-icon>
</button>
</mat-form-field>