垫扩展面板添加下拉打开问题

cor*_*114 0 css angular-material angular

我添加了Angular 材料 mat-expansion-panel选择选项,当我点击选择菜单时,mat-expansion-panel 是自动打开的,任何人都知道如何解决这个问题,

堆栈闪电战示例

我的代码

组件.html

<mat-accordion>
  <mat-expansion-panel>
    <mat-expansion-panel-header>
      <mat-panel-title>
       <select class="form-control" id="exampleFormControlSelect1">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select>
      </mat-panel-title>
      <mat-panel-description>
        Type your name and age
      </mat-panel-description>
    </mat-expansion-panel-header>

    <mat-form-field>
      <input matInput placeholder="First name">
    </mat-form-field>

    <mat-form-field>
      <input matInput placeholder="Age">
    </mat-form-field>
  </mat-expansion-panel>
  <mat-expansion-panel (opened)="panelOpenState = true"
                       (closed)="panelOpenState = false">
    <mat-expansion-panel-header>
      <mat-panel-title>
        Self aware panel
      </mat-panel-title>
      <mat-panel-description>
        Currently I am {{panelOpenState ? 'open' : 'closed'}}
      </mat-panel-description>
    </mat-expansion-panel-header>
    <p>I'm visible because I am open</p>
  </mat-expansion-panel>
</mat-accordion>
Run Code Online (Sandbox Code Playgroud)

Car*_*ten 5

我没有你描述的问题,但我明白你的意思。发生的情况是,当您单击选择时,您还单击了扩展面板。您可以通过阻止单击以通过选择来防止此行为。

stopPropagation
Run Code Online (Sandbox Code Playgroud)

在您的 HTML 中,将选择更改为:

<select class="form-control" id="exampleFormControlSelect1" (click)="$event.stopPropagation()">
Run Code Online (Sandbox Code Playgroud)

  • 很好的解决方案! event.stopPropagation() 方法会阻止事件冒泡到父元素,从而阻止执行任何父事件处理程序。 (2认同)