Я пытаюсь реализовать функцию, которая в конечном итоге возвращала бы объединенный список.
Когда пользователь выбирает узел, EventEmitter его запускает.Это в формате TreeNode:
displayName: string;
children: TreeNode<T>[];
selected: boolean;
collapsed?: boolean;
indeterminate: boolean;
selectable: boolean;
value: T;
Затем я передаю этот узел в качестве входных данных для моей функции.Однако, согласно моей текущей реализации, я получаю несколько списков (по одному на каждый выбранный узел).
Мне нужен только один составной список.Когда я выбираю узел, «returnTrees» будет иметь правильный список.При выборе другого узла console.log(returnTrees)
отобразит предыдущий список (для первого выбранного узла), а также новый список.
slice.component.ts:
public onSliceChange(event:TreeNode<string>):void {
if(event.selected || event.indeterminate) {
this.selections.push(event);
this.selections.forEach(tree => {
let selectedNodes:TreeNode<string>[] = tree.children.filter(child => child.selected || child.indeterminate);
let returnTrees:TreeNode<string>[] = [];
selectedNodes.forEach(node => {
var tempTree:TreeNode<string> = new TreeNode<string>();
tempTree.displayName = node.displayName;
tempTree.value = tree.value;
tempTree.children = [];
node.children.forEach(child => tempTree.children = tempTree.children.concat(TreeNode.getAllCheckedNodes(child)));
returnTrees.push(tempTree);
});
console.log(returnTrees); //prints all lists for all selected nodes
});
}
}
Я пыталсядобавление:
tempList: TreeNode<string>[] =[];
this.tempList.concat(returnTrees);
Но «this.tempList» в этом случае всегда пуст (даже при выборе узла).
Как можно объединить списки и получить один список?Это возможно?Любая помощь приветствуется!