当我打开另一个面板时,会调用<mat-expansion-panel>的(关闭)功能

时间:2018-01-24 15:05:33

标签: angular typescript angular-material angular-material2 angular2-directives

我正在使用垫式手风琴,里面有多个垫子扩展面板。在第一个mat-expansion-panel我调用一个函数(关闭)。默认情况下,第一个mat-expansion-panel关闭。现在当页面加载并且我点击第二个mat-expansion-panel时,第一个mat-expansion-panel(已关闭)的功能被调用(不应该是因为它尚未打开)。

我希望当我们打开扩展面板然后关闭它或任何其他打开任何其他扩展面板时,只有第一个扩展面板的(关闭)功能才会被调用。

<mat-accordion class="example-headers-align myaccordion">
             <mat-expansion-panel  hideToggle="true" class="myexpension" (opened)="fetchGeneralInfo()" (closed)="collpaseClose(0)"  #generalInfo>
             <mat-expansion-panel-header>
                <mat-panel-title>
                            General Information
                </mat-panel-title>
 </mat-expansion-panel>

   <mat-expansion-panel hideToggle="true" class="myexpension" #guaInfo (opened)="fetchGua()" >
    <mat-expansion-panel-header>
      <mat-panel-title>
        Gurantor Information
      </mat-panel-title>
 </mat-expansion-panel>

2 个答案:

答案 0 :(得分:0)

mat-accordion组件具有输入属性 multi 。 @Input()multi:boolean:手风琴是否应同时允许多个扩展的手风琴项目。 由于它未设置为true,因此可能会触发其他扩展面板的已关闭事件。 将设置为true private void tableMouseClicked(java.awt.event.MouseEvent evt) { int rowIndex = table.getSelectedRow(); DefaultTableModel model = (DefaultTableModel) table.getModel(); if (model.getValueAt(rowIndex, 3).toString().equals("1")) { AvBtn.setSelected(true); } IdField.setText(model.getValueAt(rowIndex, 0).toString()); NumberField.setText(model.getValueAt(rowIndex, 1).toString()); locationField.setText(model.getValueAt(rowIndex, 2).toString()); UserIdField.setText(model.getValueAt(rowIndex, 4).toString()); } 并检查。

答案 1 :(得分:0)

很晚才回答,但我遇到了同样的问题。

使用 (opened)=... 代替 (afterExpand)=...