Угловой толчок в список для субъекта имеет только один узел вместо всех предметов - PullRequest
0 голосов
/ 24 сентября 2018

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

У меня есть значение выбранного узла в "currentNode".Я пытаюсь выдвинуть это в список под названием "выборы"В этом списке должны быть все выбранные узлы (при выборе слева он помещается в список).

Затем я передаю этот список через "rightSideSubject".Компонент, который был создан для правого кода, будет воспринимать эту тему как ввод и отображение.

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

checkbox-tree.component.ts:

import { Component, EventEmitter, Output } from '@angular/core';
import { TreeNode } from './../../dto/TreeNode';
import { BaseTreeComponent } from './../base-tree/base-tree.component';
import { Subject } from 'rxjs/Subject';

import html from './checkbox-tree.component.html';
import css from '../fortune-select.component.css';

@Component({
  selector: 'checkbox-tree',
  template: html,
  styles: [css],
})

export class CheckboxTreeComponent<T> extends BaseTreeComponent<T> {
  rightSideSubject                  = new Subject<TreeNode<T>[]>();
  selections: TreeNode<T>[] = [];



  //gets called when a node is selected
  public selected():void {
    if(!this.linked || (this.currentNode.indeterminate && !this.currentNode.selected)) {
      this.dataChangedEvent();
      return;
    }

    this.currentNode.indeterminate = false;
    if(this.singleLevelOnly) {
      this.currentNode.selectChildrenSingleLevel(this.currentNode.selected);
    } else {
      this.currentNode.selectChildren(this.currentNode.selected);
    }

    this.selections.push(this.currentNode);
    this.rightSideSubject.next(this.selections);
    console.log(this.selections);
    this.childChanged.emit();
    this.dataChangedEvent();
  }

}

Что я делаю неправильно?Как я могу получить список выбранных узлов (при сохранении порядка выбора)?

Любая помощь приветствуется!

...