[英]angular material mat-select with mat-chip-list remove chip by ENTER instead of DELETE or BACKSPACE
I have a component that contains a mat-select and displays the values selected in the mat-chip-list.我有一个包含 mat-select 并显示 mat-chip-list 中选择的值的组件。 I am currently working on accessability of the component.
我目前正在研究组件的可访问性。 One of the requirements I received is to allow mat-chip removal using the Enter in place or in addition to Delete and Backspace .
我收到的要求之一是允许使用Enter原位或除Delete和Backspace之外的方式移除垫屑。 I checked the documentation of Angular Material and what I found is just that:
我检查了 Angular Material 的文档,我发现只是:
remove
消除
Allows for programmatic removal of the chip.允许以编程方式移除芯片。 Called by the MatChipList when the DELETE or BACKSPACE keys are pressed.
当按下 DELETE 或 BACKSPACE 键时由 MatChipList 调用。 Informs any listeners of the removal request.
通知删除请求的所有侦听器。 Does not remove the chip from the DOM.
不从 DOM 中移除芯片。
<mat-form-field>
<mat-label>Choose Colors</mat-label>
<mat-select [formControl]="colorsControl" multiple>
<mat-option *ngFor="let color of colorsList" [value]="color">{{color}}</mat-option>
</mat-select>
</mat-form-field>
<div>
<mat-chip-list>
<mat-chip *ngFor="let color of colorsControl.value"
[removable]="true" (removed)="onColorRemoved(color)" (keydown.enter)="onColorRemoved(color)">
{{ color }}
<mat-icon matChipRemove>cancel</mat-icon>
</mat-chip>
</mat-chip-list>
</div>
<br/>
Any help will be appreciated.任何帮助将不胜感激。
In the end I found a simple solution to my problem: By adding keydown event on mat-chip:最后,我找到了解决问题的简单方法:通过在 mat-chip 上添加 keydown 事件:
<mat-chip *ngFor="let color of colorsControl.value"
[removable]="true" (removed)="onColorRemoved(color)" (keydown.enter)="onColorRemoved(color)">
{{ color }}
<mat-icon matChipRemove>cancel</mat-icon>
</mat-chip>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.