Mat-toggle-slide 触发器

Mat-toggle-slide Triggers

我有一个常规的 mat-slide-toggle,带有如下所示的点击事件:

<mat-slide-toggle (click)="do()" [(ngModel)]="checked"></mat-slide-toggle>

该组件由点击和空格键触发。但是使用空格键它不会触发点击事件。我该怎么做?

并且在可访问性方面。空格键触发不回车键触发对吗?

But with the spacebar it doesn't trigger the click event. How can I do so?

您应该使用 (change)="do()",因为底层组件是 input type="checkbox"。这应该涵盖所有输入类型。

And in terms of accessibility. It is right to trigger by spacebar and not with enter key?

是的,开关的操作方式与复选框相同,因此预期的键是 SpaceYou can read more about expected behaviour of a role="switch" element on MDN.

值得注意的是,如果 role="switch" 的基础组件是 <button> 那么您可以使用 (click)="do()" 并且它将与 一起使用 Enter,但在 material 库组件中情况并非如此(尽管知道您是否曾经制作过自己的组件很有用!)。