Развернуть корневые узлы в дереве угловых материалов

Я знаю, что есть доступные методы для расширения и объединения всех узлов, но я просто хочу расширить первый уровень узлов (корневых узлов). Как это возможно?

0 ответов

Если вы добавите ngAfterViewInit в свой компонент, вы можете использовать метод toggle на вашем treeControl, чтобы расширить узел, указанный параметром, который принимает переключение, но в зависимости от ваших настроек вам, возможно, придется проделать дополнительную работу, чтобы получить узел, который вы хотите расширить. Вот что я сделал, чтобы расширить только первый узел:

ngAfterViewInit() {
const subject = this.dataSource._flattenedData
subject.subscribe((data) => {
  this.treeControl.toggle(data[0])      
})
}

Если вы хотите расширить конкретный узел, вы можете просмотреть эти данные, возвращенные из подписки, но просто убедитесь, что вы не пытаетесь захватить вещи до того, как они были получены подпиской, или есть какие-то условия для этого. Вот что я сделал, чтобы развернуть все узлы под первым узлом:

ngAfterViewInit() {
const subject = this.dataSource._flattenedData
subject.subscribe((data) => {
  this.treeControl.toggle(data[0])
  if(data[1]){
    let i = 1
    while (data[i].level != 0) {
      this.treeControl.toggle(data[i++])
    }
  }      
})
}
Другие вопросы по тегам