带复选框的 Angular Material 垫树全选

标签 angular checkbox tree angular-material

我正在使用 Tree with checkboxes ,我想添加一个按钮来检查所有复选框,我尝试了不同的方法但没有好处,我能够实现的最好的事情是:

  selectAllFiscal() {
    this.rootItems.forEach(node => {
      this.todoItemSelectionToggle(node);
    });
  }

rootItems 是一个根节点数组。

我可以看到在迭代时选择了节点 checklistSelection.selected ,但是浏览器中没有选中复选框,任何人都可以指出问题,谢谢。

最佳答案

为您的方法尝试以下方法

  checkAll(){
    for (let i = 0; i < this.treeControl.dataNodes.length; i++) {
      if(!this.checklistSelection.isSelected(this.treeControl.dataNodes[i]))
        this.checklistSelection.toggle(this.treeControl.dataNodes[i]);
      this.treeControl.expand(this.treeControl.dataNodes[i])
    }
  }

Blitz

https://stackblitz.com/edit/angular-hpsj5x?embed=1&file=app/tree-checklist-example.html

关于带复选框的 Angular Material 垫树全选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53655995/

相关文章:

ruby-on-rails - ruby rails : Checkbox gets unchecked when trying to edit a post

algorithm - 对于树的每个节点,找到最近的祖先节点,使得 val[node] 与 val[ancestor] 互质

html - 从 angular 4 中的 html 中删除主机组件标签

javascript - Angular 5 - 如何将变更检测仅限于组件范围?

javascript - 检查给定 ID 是否存在于 Javascript 中的嵌套对象中的有效方法

javascript - 如何使用控制台选择N个复选框?

PHP-将带有复选框的多个类别添加到mysql中

Angular 4 + Jasmine 单元测试 : Reasons why fixture. detectChanges() 可能无法在更改 @Input() 变量时工作

javascript - 如何在js中创建 TreeView

javascript - 如何用递归对象 extjs 填充商店?