У меня есть список с 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]);
});
}