Метод разворачивания / свертывания дерева матов не работает - PullRequest
0 голосов
/ 19 марта 2020

У меня есть список с root узлами, некоторые из них имеют детей, а некоторые нет. Мне удается добавить новых детей в узлы без одного, и он показывает это на дереве, но шеврон не показывает. Кто-нибудь может направить меня в правильном направлении?

Это мой код

refreshDataTree(data) { // data { savedId, level }
    // ! COMO SABER EN QUE NIVEL ES EL CATALOGO
    let addedCatalog: CatalogoBean;

    // Get the new catalog to then search for its parent
    this.clasificacionController.searchCatalogo(data.savedId).subscribe((catalog) => {
      addedCatalog = catalog;

      // Get the parent catalog
      const parentNode = this.dataSource.data.find(element => {
        return element.catalogo.idcatalogo === addedCatalog.idcatalogoPadre;
      });
      const index = this.dataSource.data.indexOf(parentNode);

      if (parentNode === undefined) {
        // if not parent means it's a parent catalog
        this.database.initialData().subscribe((catalogos: Array<CatalogoBean>) => {
          catalogos = catalogos.filter(inicial => inicial.idcatalogo !== -1);
          this.dataSource.data = [];
          this.dataSource.data = catalogos.map(node => new FlatNode(node, 0, node.hijos, false));
          this.dataSource.dataChange.next(this.dataSource.data);
        });
      } else {
        let count = 0;
        // IF LEVEL 1 UPDATE THE INITIAL DATA TOO
        if (data.level === 1) {
          this.database.initialData().subscribe((catalogos: Array<CatalogoBean>) => {
            catalogos = catalogos.filter(inicial => inicial.idcatalogo !== -1);
            this.dataSource.data = catalogos.map(node => new FlatNode(node, 0, node.hijos, false));
            this.dataSource.dataChange.next(this.dataSource.data);
          });
        }

        // DELETE THE CHILDREN
        for (let i = index + 1;
          i < this.dataSource.data.length && this.dataSource.data[i].level > parentNode.level;
          i++, count++) { }
        this.dataSource.data.splice(index + 1, count);
        this.dataSource.dataChange.next(this.dataSource.data);
        // --- END DELETING CHILDREN

      }
      this.tree.treeControl.expand(this.tree.treeControl.dataNodes[index]);

    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...