getBookOutlineBar метод принимает список узлов и выбранный узел, который необходимо выбрать при открытии боковой панели схемы. Я реализовал метод расширения для расширения всех родительских узлов, но он расширяет только один конкретный узел, а не все родительские узлы. Если открыта страница «Заголовок» и я нажимаю на боковую панель контура, тогда все родительские узлы должны быть развернуты и должен быть выбран заголовок. Я использовал управление вложенным деревом дерева матов в angular 8 (этот пример используется в моем коде: https://stackblitz.com/angular/dklgxbrynad?file=src%2Fapp%2Ftree-nested-overview-example.ts). Пожалуйста, предложите любую помощь.
getBookOutlineBar() {
let customURL = '';
this.bookService.GetBookOutlineBar(this.bookId, location.hash).subscribe(data => {
this.dataSource.data = data.list;
if (data.selectedNode != null) {
this.selectedNode = data.selectedNode;
this.treeControl.collapseAll();
this.expand(this.dataSource.data, this.selectedNode.UniqueId);
}
})
}
expand(data: BookOutlineBar[], uniqueId: string): any {
data.forEach(node => {
if (node.Children && node.Children.find(c => c.UniqueId === uniqueId)) {
this.treeControl.expand(node);
this.expand(this.treeControl.dataNodes, node.UniqueId);
}
else if (node.Children && node.Children.find(c => c.Children)) {
this.expand(node.Children, uniqueId);
}
});
}