angular - 仅在单击图标时展开面板 - Angular Material

标签 angular angular-material material-design

我正在使用 Material 在 Angular 11 项目中工作。

我正在使用一些扩展面板。我将在扩展面板的标题中添加一个按钮。因此,我希望该行仅在单击箭头图标(右侧)时展开/折叠。现在,如果单击标题的任何部分,面板将展开/折叠。

我找到了这个帖子:Angular Material Expansion panel, expand only on button click
然而,该人的解决方案是让他们自己的按钮带有箭头图标,而不是使用 Material 面板已有的箭头图标。我宁愿使用 Material 在面板中提供的图标,也不愿创建自己的按钮。

有没有什么方法可以让我在切换图标被选中时向 Material 发出信号,我只想展开?属性(property)什么的?我认为很多人都希望拥有某种功能......
如果没有,我有办法强制这种行为吗?我不想创建自己的切换按钮,我想使用面板中的切换按钮。

我做了这个演示,展示了我的问题:https://stackblitz.com/edit/expand-collapse-on-icon-click-only?file=src/app/expansion-expand-collapse-all-example.html

如有任何帮助,我们将不胜感激。

最佳答案

使用stopPropation在我的面板 div 元素上。当您单击标题的任何部分时,它将阻止打开扩展面板。

<mat-accordion class="example-headers-align" multi>
      <!-- #enddocregion multi -->
      <mat-expansion-panel>
        <mat-expansion-panel-header>
          <div class="my-panel"  (click)="$event.stopPropagation();">
            <h3>Panel Header</h3>
     <button mat-stroked-button (click)="myButton()">my button</button>
          </div>
        </mat-expansion-panel-header>
    
        <div>My panel content!</div>
      </mat-expansion-panel>
  </mat-accordion>

Forked Working Example

关于angular - 仅在单击图标时展开面板 - Angular Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66655993/

相关文章:

javascript - angular2 @Input EventEmitter 更新 View

javascript - 模板驱动的“起始日期”和“截止日期”表单验证

angular - 如何避免剧作家忽略多个按键

angular - 为使用 mat-autocomplete 的组件编写单元测试

android - 更新到 Material 1.2.0 后, Material 按钮上缺少圆角半径属性

material-design - Google 设计指南的来源在哪里 | Material 设计

Android Material 设计 - 如何在工具栏中放置面包屑(导航)?

javascript - 无法使用 Angular 在 html 选择中重置第一项

angularjs - Angular Material : Can you disable the autocomplete suggestions for an input?

css - Angular 中带有 mat-table 的 float 水平滚动条