angular - 如何使用 SelectionModel 以编程方式选择材质树节点?
问题描述
我有一棵带复选框的树(让我们在这里使用 Material 的示例)。我想开始检查水果节点。如何检查这些节点?
我看到SelectionModel
有一个select()
例子传递一个节点的方法。但在示例中,构成树的数据是 的数组TodoItemNode
,但SelectionModel
包含TodoItemFlatNode
。示例中的transformer
方法可以“展平”我的节点(即转换TodoItemNode
为TodoItemFlatNode
),但这会返回一个新实例。
如何以编程方式选择 mat-tree 复选框以匹配我的数据?
解决方案
要预先选择水果节点,请在附加的 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]) } } }
堆栈闪电战
https://stackblitz.com/edit/angular-j2nf2r?embed=1&file=app/tree-checklist-example.html
推荐阅读
- flask - delete route in flask application does not work
- python - add a line break ( \n=) in a sorted( list of tuples)
- node.js - Error: You must provide the json interface of the contract when instantiating a contract object
- maxima - wxMaxima:将除法视为乘法(将整体除法收集为乘法因子)
- html - 无法使输入(复选框)遵循 CSS 绝对定位
- javascript - Node/Express:使用来自另一个文件的函数请求
- tensorflow - 在 Google Coral Devboard 和 Jetson Nano 中使用我自己构建的卷积神经网络分类器
- javascript - Spring DWR engine.js 失败未知错误
- symfony - 弃用模板必须包含“%service_id%”占位符
- java - 将 JSON 序列化程序设置为使用单引号而不是双引号来附加值