我的mat-tree
结构如下:
[
{
key: 'a',
value: 'a1',
children: [
{
key: 'b',
value: 'b1',
children: [
{
key: 'c',
value: 'c1
}
]
},
{
key: 'd',
value: 'd1',
children: [
{
key: 'e',
value: 'e1',
}
]
}
]
}
]
我正在编写一种递归方法,该方法只会扩展各个键的沿袭。例如,如果键输入为c
,则仅扩展节点a, b, c
,而在这种情况下不扩展其他子节点或节点。
这就是我的做法:
expandNodes(node: TreeNode, key: string) {
if (node.key === key) {
this.keyFound = true;
this.treeControl.expand(node);
}
if (node.children) {
for (let i = 0; i < node.children.length; i++) {
this.expandNodes(node.children[i], key);
if (this.keyFound) {
this.treeControl.expand(node);
}
}
}
}
此解决方案的问题在于,一旦找到密钥,它就会扩展所有节点。为了使这项工作有效,我应该更改或包括哪些内容?任何帮助都会很棒。