带有复选框SelectionModel的角材料树

时间:2018-12-04 19:02:59

标签: angular-material-6

我试图预先选择项目,所以我使用了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匹配的项,它工作正常,并且如果选择了所有子项,它也会选择父项,但是当我取消选择父项时它会一直选择子项,直到我(先取消选择然后再次取消选择)父项为止。

1 个答案:

答案 0 :(得分:0)

我通过遵循Angular材质网站https://stackblitz.com/angular/yvdqyjdmmke?file=app%2Ftree-checklist-example.ts

中提供的示例找到了解决方案

我使用提供的函数todoItemSelectionToggle()并确保this.checkAllParentsSelection(node);在该函数中使用。