在不使用 disabled 的情况下保持 Material Slide Toggle 开启或关闭

Keep Material Slide Toggle pegged on or off without using disabled

我的 Angular 4 应用程序要求 mat-slide-toggle 在某些情况下保持开启(彩色)或关闭。通常 disabled 标签将用于这种情况,在这种情况下最好将切换保持在相同状态并抛出一个 snackbar 提醒用户。

我的方法是传入更改事件,并在调用函数后将按钮切换回其预单击状态。然而,它似乎只适用于第一次点击,然后用户似乎可以随意切换。有没有更好的方法来完成这个?

编辑:我正在做的一个例子是https://stackblitz.com/edit/angular-bspml8-qtafs2

您需要阻止点击事件到达 MatSlideToggle 的点击处理程序。您可以通过添加自己的点击处理程序并在事件上调用 preventDefault() 来实现:

<mat-slide-toggle (click)="$event.preventDefault()" ...>...</mat-slide-toggle>