I have a tree with checkboxes (let's use Material's example here). I'd like the fruit nodes to begin checked. How do I check those nodes?
I see that SelectionModel
has a select()
method that the example passes a node. But in the example, the data the tree is made of is an array of TodoItemNode
, but the SelectionModel
contains TodoItemFlatNode
. The transformer
method in the example can "flatten" my node (ie. convert TodoItemNode
to TodoItemFlatNode
), but that would return a new instance.
How can I programmatically select mat-tree checkboxes to match my data?
To pre-select the fruits node implement the following in an ngAfterViewInit
for the TreeChecklistExample
class in the attached stackblitz example.
dataNodes
in the treeControl
item == 'Fruits'
select node and expandAlso if item == 'Groceries'
expand node as it is the parent of 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With