@PatriotSY

Как раскрыть всю ветку дерева в mat-tree?

Изучаю cdk mat-tree: https://material.angular.io/cdk/tree/overview
Нужно найти в дереве совпадения и открыть всю ветку. до этого совпадения. Найти - не проблема. Открыть нужное - тоже, но вот как открыть цепочкой, вплоть до корневого родителя? Когда делал свое дерево, добавлял свойство parent - которое ссылалось на предка и рекурсивно открывал. А тут как быть?
Пример: https://stackblitz.com/edit/angular-yi9tbm-bzq6wu при закомментированной строчке 81, ветка открывается при нажатии на кнопку, но мы этого не видим, т.к. родитель свернут. Как цепочкой открыть?
  • Вопрос задан
  • 454 просмотра
Решения вопроса 2
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
это же плоское дерево. Просто берешь ноду, раскрываешь и двигаешься назад по массиву раскрывая ноды до тех пор пока не доберешься до level 0

вот
https://stackblitz.com/edit/angular-yi9tbm-i9tl2k

или даже так
private expandAcsendants(index: number) {
  for (let c = index; this.treeControl.dataNodes[c]; c--) {
    this.treeControl.expand(this.treeControl.dataNodes[c]);
    if (this.treeControl.dataNodes[c].level === 0) {
      break;
    }
  }
}
Ответ написан
Комментировать
Можно сделать свой TreeControl.
https://stackblitz.com/edit/angular-yi9tbm-tqbsxf
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы