angular - 尝试使按钮折叠/展开 Angular Material 嵌套树时出错

标签 angular tree angular-material

我有一个 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/

相关文章:

angular - 使用 Flask 为 Angular 前端提供服务不会渲染图像

java - 更改 SWT TreeItem 父级

javascript - Angular 12 日期选择器

html - 将正方形插入 mat-table - Angular

javascript - 如何检查表列数据类型

css - Angular 6 Material - 色调以及如何更改垫子单选按钮的颜色

Angular 5 Chart.js onclick 返回空数组

javascript - d3 树数所有 child

javascript - 如何在 JavaScript 中解析大型 JSON 流中的项目?

angular - 如何在Angular Material 中为文本输入着色