1

当我将click事件放在mat-sidenav-content <mat-sidenav-content (click)="isNavBarOpened=false"> 上时,mat-slide-toggle内部不起作用。

这是示例

4

3 回答 3

2

在你的 mat-slide 切换组件上添加 $event.stopPropagation() ,这样事件就不会冒泡。

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

分叉示例

于 2020-04-22T12:53:49.410 回答
0

将设置属性值部分移动到一个函数为我解决了这个问题。这样,我们就不需要触及事件传播顺序。

我的猜测是转向功能是增加额外的 CPU 周期,而延迟正在解决问题。但这只是猜测,有待专家解释。

<mat-sidenav-content (click)="closeNavBar()">

closeNavBar() {
this.isNavBarOpened=false;
}

分叉示例

于 2021-03-04T05:56:35.107 回答
0

监听更改事件并相应地切换您的布尔值。

https://stackblitz.com/edit/angular-cvlqrt-qjc44x

于 2020-04-22T12:50:50.410 回答