Angular2递归树展开全部

时间:2016-09-26 09:12:02

标签: recursion angular treeview

我有递归树组件,我想在父组件上点击所有节点,我该怎么做?更多细节在plunker。

Plunker

我在谈论这种方法:

   expandAll(){
    console.log("expanded all");
  }

2 个答案:

答案 0 :(得分:0)

只需向expandAll()添加TreeComponent方法即可展开所有节点,并在所有嵌套expandAll()组件上调用TreeComponent

您可以通过添加

来获取所有嵌套的TreeComponent组件
@ViewChildren(TreeComponent) subTrees:QueryList<TreeComponent>;

并在子项上调用该方法,如

expandAll() {
  for(var subTree of this.subTrees.toArray()) {
    subTree.expandAll();
  }
}

答案 1 :(得分:0)

过了一会儿我想我弄清楚了。我刚刚在@Input()中添加了一个TreeComponent

@Input() expandAll: boolean;

并将*ngIf递归条件替换为:

[hidden]="(!expanded[i] && !expandAll) || (expanded[i] && expandedAll)"

它需要更多的工作(折叠所有工作,它应该如何工作),但它的工作原理我想要的。

Plnker