我在项目中使用了Angular Material Tree组件。
是否有可能默认展开树形结构?
同时,是否可以通过一个按钮来一次性展开/折叠所有节点?
我在项目中使用了Angular Material Tree组件。
是否有可能默认展开树形结构?
同时,是否可以通过一个按钮来一次性展开/折叠所有节点?
MatTree
的 treeControl
提供了 expandAll
方法,您可以使用它来展开所有树节点,并使用 collapseAll
关闭所有树节点。
您可以通过 ViewChild
获取 MatTree
实例,并在 ngAfterViewInit
生命周期钩子中调用 expandAll
方法以使其默认展开。
@ViewChild('tree') tree;
ngAfterViewInit() {
this.tree.treeControl.expandAll();
}
从模板调用的源代码示例:
<button (click)="tree.treeControl.collapseAll()">collapseAll</button>
<button (click)="tree.treeControl.expandAll()">expandAll</button>
<mat-tree #tree [dataSource]="dataSource" [treeControl]="treeControl">
...
<mat-tree>
请查看示例。
此外,请确保设置treeControl节点。在加载数据后,您应该
treeControl.dataNodes = nodes;
treeControl.expandAll()
expandAll()
方法来以编程方式展开所有树节点:ngOnInit() {
this.dataSource.data = TREE_DATA;
this.treeControl.expandAll();
}
collapseAll()
方法可以将它们全部折叠起来。ngOnInit() {
this.dataSource.data = TREE_DATA;
this.treeControl.collapseAll();
}
expandAll
功能正常工作,请确保在TreeControl
中,变量dataNodes
已设置为树的所有根级数据节点。 - Aditya Vikas Devarapalli