Angular mat-table 取消纹波

Angular mat-table cancel ripple

我有一个 angular-material table 有一个带有 matRipple 效果的可点击行。 在 table 中,我有一个按钮作为行之一。 单击按钮时,它会发出一个事件,到目前为止,我已经停止了事件传播,这在防止两个元素检测到单击事件方面效果很好。 有没有办法仅在单击按钮时暂时取消父行的连锁反应?

涟漪使用 mousedownmouseup 事件,您可以在这两个事件中禁用或打开 parent 的涟漪:

  <div
    class="example-ripple-container mat-elevation-z4"
    matRipple
    [matRippleDisabled]="disabled"
  >
    <button (mousedown)="disabled=true" (mouseup)="disabled=false" mat-button>button</button>
  </div>

使用 stopPropagation 方法简单地停止按钮的 mousedown 事件的进一步传播,如下所示:

<button (mousedown)="$event.stopPropagation()">