在Angular Material Tree中展开根节点

时间:2018-07-31 07:09:25

标签: angular angular-material angular-material2 angular-material-5

我知道有扩展和折叠所有节点的可用方法,但我只想扩展第一级节点(根节点)。那怎么可能?

1 个答案:

答案 0 :(得分:0)

如果将ngAfterViewInit添加到组件,则可以在treeControl上使用toggle方法来扩展由toggle需要的参数指定的节点,但是根据您的设置,您可能需要做一些额外的工作才能获得想要的节点扩大。这是我仅扩展第一个节点所做的工作:

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++])
    }
  }      
})
}