我想在 Angular 2 Material 中实现“全部展开”和“全部折叠”。有人可以给个思路吗?如何实现?
1- 若要允许展开多个面板,您应该移除mat-accordion
。
2- 使用expanded
参数同时更改多个状态。
编辑
从版本6.0.0-beta-0开始,您可以使用multi
参数以及openAll
和closeAll
函数:
1- 更改mat-accordion
元素以将muti
设置为true并获取MatAccordionComponent
实例:
<mat-accordion #accordion="matAccordion" [multi]="true">
2- 然后使用openAll
和closeAll
函数打开或关闭所有面板:
<button (click)="accordion.openAll()">Expand All </button>
<button (click)="accordion.closeAll()">Collapse All </button>
multi
设置为true
以使用accordin
。 - Sreekumar P来源 链接
对于最新版的 Angular material 8
模板
<button mat-flat-button color="primary" (click)="openAllPanels()"><b>Open Panels</b></button>
<button mat-flat-button color="primary" (click)="closeAllPanels()"><b>Close Panels</b></button>
<mat-accordion [multi]="true"
#accordion="matAccordion"
>
<mat-expansion-panel
#mapanel="matExpansionPanel"
>
<mat-expansion-panel-header>
<b>Title</b>
</mat-expansion-panel-header>
<p>Description</p>
<mat-action-row>
<button mat-flat-button (click)="mapanel.close()">Click to close</button>
</mat-action-row>
</mat-expansion-panel>
</mat-accordion>
组件
import { MatAccordion } from '@angular/material';
...
...
@ViewChild('accordion',{static:true}) Accordion: MatAccordion
...
...
closeAllPanels(){
this.Accordion.closeAll();
}
openAllPanels(){
this.Accordion.openAll();
}
...
...
static
属性设置为true
,它对我没有起作用。自从Angular Material 8.2.3以后必须设置为false
。请翻译此内容。 - liqSTAR