【问题标题】:Angular Material Expansion panel, expand only on button clickAngular Material Expansion 面板,仅在按钮单击时展开
【发布时间】:2020-01-13 11:13:49
【问题描述】:

默认情况下,当用户单击标题中的任意位置时,Angular 扩展面板会展开。但是我想更新此功能,以便只有右侧箭头按钮才能触发扩展事件。有人可以帮助我实现这一目标吗? 下面是一个示例代码。 https://stackblitz.com/edit/angular-exp-panel-click

<button (click)="panel1.toggle()" mat-raised-button>Toggle panel 1</button>
<button (click)="panel2.toggle()" mat-raised-button>Toggle panel 2</button>

mat-accordion 外的按钮可以正确扩展所需的面板,但是在标题内添加相同的按钮时无法按预期工作。

【问题讨论】:

    标签: angular angular-material


    【解决方案1】:

    您可以:

    1. 完全删除click 事件处理程序。这是因为按钮捕捉到了鼠标点击,而面板的其余部分没有,因为它具有pointer-events: none 样式属性。然后点击事件传播到面板,面板会切换展开。
    <button class="toggle-panel" mat-raised-button>
    
    1. 在事件处理程序中调用$event.stopPropagation(),以防止面板也接收到单击事件,这会将展开切换回其原始状态。
    <button class="toggle-panel" (click)="$event.stopPropagation(); panel2.toggle()" ... >
    

    请参阅this stackblitz 以获取演示。

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多