У меня есть вложенное дерево угловой материал. Я пытаюсь создать кнопку, чтобы развернуть / свернуть, но я получаю следующую ошибку:
ERROR TypeError: Cannot read property 'reduce' of undefined
Я пробовал использовать HTML:
<button (click)="ahtree.treeControl.collapseAll()">collapseAll</button>
<button (click)="treeControl.expandAll()">expandAll</button>
<mat-tree #ahtree [dataSource]="AccountRelTypeTreeDataSource" [treeControl]="treeControl" class="example-tree">
<!-- This is the tree node template for leaf nodes -->
<mat-tree-node *matTreeNodeDef="let node" matTreeNodeToggle>
<li class="mat-tree-node">
<!-- use a disabled button to provide padding for tree leaf -->
<button mat-icon-button disabled></button>
<p">{{node.displayName}}</p>
</li>
</mat-tree-node>
// The rest...
...
Или с машинописью:
// Trees:
@ViewChild('ahtree') ahtree;
selectedTab = 0;
// Datasource
treeControl = new NestedTreeControl<TreeNode>(node => node.children);
DataSource = new MatTreeNestedDataSource<TreeNode>();
...
ngAfterViewInit() {
this.ahtree.treeControl.expandAll();
}
Я прочитал https://material.angular.io/components/tree/overview#treecontrol,, но мне все еще не удается заставить его работать.
Кто-нибудь знает, как это сделать с помощью вложенного дерева?