我有一棵带有复选框(let's use Material's example here)的树。我希望开始检查水果节点。如何检查这些节点?
我看到SelectionModel
有一个select()
方法,该示例传递了一个节点。但是在示例中,构成树的数据是TodoItemNode
的数组,但是SelectionModel
包含TodoItemFlatNode
。示例中的transformer
方法可以“拉平”我的节点(即,将TodoItemNode
转换为TodoItemFlatNode
),但这将返回一个新实例。
如何以编程方式选择mat-tree复选框以匹配我的数据?
答案 0 :(得分:5)
要预先选择水果节点,请在随附的stackblitz示例中的ngAfterViewInit
类的TreeChecklistExample
中实现以下内容。
dataNodes
中的treeControl
item == 'Fruits'
选择节点并展开如果item == 'Groceries'
扩展节点,因为它是Fruits的父节点。
ngAfterViewInit() {
for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
if (this.treeControl.dataNodes[i].item == 'Fruits') {
this.todoItemSelectionToggle(this.treeControl.dataNodes[i]);
this.treeControl.expand(this.treeControl.dataNodes[i])
}
if (this.treeControl.dataNodes[i].item == 'Groceries') {
this.treeControl.expand(this.treeControl.dataNodes[i])
}
}
}
Stackblitz
https://stackblitz.com/edit/angular-j2nf2r?embed=1&file=app/tree-checklist-example.html