展开角材料树的特定节点

时间:2019-06-17 13:36:59

标签: angular angular-material

我正在使用Angular Material Tree,并且需要根据某些逻辑扩展某些节点。

我从Angular Material官方文档中提供的示例之一开始创建了一个示例。

启动时,页面如下所示 enter image description here

如果我点击按钮 Expand Fruits Node ,我想获得以下渲染效果

enter image description here

管理按钮单击的代码如下

function filterRepWalk(a) {
  return a.filter((v,i) => (!a[i-1] || (v.mode != a[i-1].mode)) || v.mode != "WALK");
}

不幸的是,如果我单击按钮,则什么也没有发生。关于如何达到预期行为的任何建议?

示例代码enter image description here

1 个答案:

答案 0 :(得分:0)

您的问题是您不扩展父级。

树控件仅扩展给定节点或节点的后代(一次扩展全部)。

这意味着您必须找到父项,然后对其进行扩展,然后对其子级进行扩展。

Here is the working stackblitz和相关代码:

  if (node.item === 'Groceries') {
    console.log('parent found');
    this.treeControl.expand(node);
  }
  if (node.item === "Fruits") {
    console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>found', node);
    this.treeControl.expand(node);
  }