我正在显示一个Angular Material Tree。该树本身可以正常工作,但是我还有一个已经选择的名称/标识列表。数据分别提供给我。我一直无法弄清楚如何在加载时预先检查树中的复选框。
我在这里创建了一个Stackblitz来展示我的问题:Data Validation wiki page
我最初的想法是尝试浏览我的选定列表,然后像这样手动切换ngInit中的选定对象(虽然这不起作用):
for (const pg of selectedBoxes) {
let leaf = new TodoItemFlatNode();
leaf.item = pg.Product_Group_ID.toString();
leaf.level = 1;
leaf.expandable = false;
this.todoLeafItemSelectionToggle(leaf);
}
还有其他建议吗?我无法在线找到任何示例。
答案 0 :(得分:0)
最后找到了我正在寻找的here.
的类似示例通过遍历我现有的节点并将它们与我现有的选定数据列表进行比较;我可以使用现有节点而不是创建新副本来切换支票。
像这样:
for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
for (const pg of selectedBoxes) {
if (this.treeControl.dataNodes[i].item == pg.Product_Group_Name) {
this.todoItemSelectionToggle(this.treeControl.dataNodes[i]);
this.treeControl.expand(this.treeControl.dataNodes[i])
}
}
}