【发布时间】:2019-01-07 11:56:08
【问题描述】:
我知道有可用的方法来展开和折叠所有节点,但我只想展开第一级节点(根节点)。这怎么可能?
【问题讨论】:
标签: angular angular-material angular-material2 angular-material-5
我知道有可用的方法来展开和折叠所有节点,但我只想展开第一级节点(根节点)。这怎么可能?
【问题讨论】:
标签: angular angular-material angular-material2 angular-material-5
如果您将 ngAfterViewInit 添加到您的组件中,您可以使用 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++])
}
}
})
}
【讨论】: