我试图预先选择项目,所以我使用了SelectionModel,它可以正常工作,但是会发生问题,即单击父项目以取消选择所有子项,必须单击父项3次才能使其正常工作。 / p>
ngOninit() {
this.treeControl.dataNodes.forEach(node => {
if ( node.level === 2 && res.item_ids.includes(+node.id)) {
this.checklistSelection.toggle(node);
}
});
}
如您所见,我正在选择与给定数组匹配的所有与item_ids匹配的项,它工作正常,并且如果选择了所有子项,它也会选择父项,但是当我取消选择父项时它会一直选择子项,直到我(先取消选择然后再次取消选择)父项为止。
答案 0 :(得分:0)
我通过遵循Angular材质网站https://stackblitz.com/angular/yvdqyjdmmke?file=app%2Ftree-checklist-example.ts
中提供的示例找到了解决方案我使用提供的函数todoItemSelectionToggle()并确保this.checkAllParentsSelection(node);在该函数中使用。