我有递归树组件,我想在父组件上点击所有节点,我该怎么做?更多细节在plunker。
我在谈论这种方法:
expandAll(){
console.log("expanded all");
}
答案 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)"
它需要更多的工作(折叠所有工作,它应该如何工作),但它的工作原理我想要的。