我有一个 Angular Material 嵌套树。我正在尝试创建一个按钮来展开/折叠,但出现以下错误:
错误类型错误:无法读取未定义的属性“reduce”
我已经尝试过使用 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...
...
或者使用 typescript :
// 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 ,但我似乎仍然无法让它发挥作用。
有谁知道如何使用嵌套树来做到这一点?
最佳答案
您没有显示完整的堆栈跟踪,但我认为错误与此 Github ticket 中描述的错误相同。 。用户 devversion 给出的解决方案对我有用。看这个anchor在同一张票中。
关于angular - 尝试使按钮折叠/展开 Angular Material 嵌套树时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55712438/