Angular Material 6.0.1树默认打开并展开/折叠全部

sai*_*bot 4 tree angular-material angular

我正在我的项目中使用Angular Material Tree.是否可以默认打开树.

并且可以有一种方法一次扩展/折叠所有节点(例如,使用按钮)

https://material.angular.io/components/tree/overview

Pen*_*gyy 15

MatTree的treeControl提供了一种expandAll方法,您可以使用该方法展开所有树节点,并collapseAll关闭所有树节点.

你可以可以的情况下MatTree通过ViewChild,并呼吁expandAllngAfterViewInit生活挂钩,使其在默认情况下扩大.

@ViewChild('tree') tree;

ngAfterViewInit() {
  this.tree.treeControl.expandAll();
}
Run Code Online (Sandbox Code Playgroud)

从模板调用的源示例:

<button (click)="tree.treeControl.collapseAll()">collapseAll</button>
<button (click)="tree.treeControl.expandAll()">expandAll</button>
<mat-tree #tree [dataSource]="dataSource" [treeControl]="treeControl">
  ...
<mat-tree>
Run Code Online (Sandbox Code Playgroud)

例子.

  • 要使“expandAll”功能起作用,请确保必须将“TreeControl”的“dataNodes”变量设置为树的所有根级数据节点。 (4认同)
  • @HobojoeBr在这里你去https://stackblitz.com/edit/angular-wmuvwj-qb8kso (2认同)

Pip*_*ipo 6

此外,请确保设置了 treeControl 节点。加载数据后,你应该

treeControl.dataNodes = nodes; 
treeControl.expandAll()
Run Code Online (Sandbox Code Playgroud)

看到这个github问题