Список угловых комбайнов с использованием concat возвращает пустой - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь реализовать функцию, которая в конечном итоге возвращала бы объединенный список.

Когда пользователь выбирает узел, 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» в этом случае всегда пуст (даже при выборе узла).

Как можно объединить списки и получить один список?Это возможно?Любая помощь приветствуется!

...