【问题标题】:How do I preselect checkboxes in mat-tree?如何在 mat-tree 中预选复选框?
【发布时间】:2019-08-06 14:36:16
【问题描述】:

我正在尝试预先选择此 mat-tree 示例的复选框:https://stackblitz.com/edit/material-tree-checklist。出于某种原因,我无法在组件初始化时预先选择复选框。

我正在尝试将两个 rxjs observable 与 combineLatest 结合起来。第一个包含 mat-tree 的数据节点。第二个包含应该预选的数据节点。这是我不起作用的解决方案:https://stackblitz.com/edit/material-tree-checklist-rj4ryd?file=app/app.component.ts

Mat-tree 本身正在使用 this.allData$,但在使用 this.selectedData$ 初始化组件时检查选定的复选框不起作用。

  combineLatest(this.allData$, this.selectedData$)
      .subscribe(val => {
        this.dataSource.data = val[0]
        val[1].map(x => this.nodeSelectionToggle(x))
   }
  )

【问题讨论】:

    标签: angular rxjs angular-material


    【解决方案1】:

    根据您的代码,您正在尝试选择GameNode 实例[来自selectedData],这与allData 中的实例不同。注意不同的new GameData。两者都指的是不同的内存位置。

    您必须从allData 中选择GameNode 实例。尝试像这样更改您的combineLatest

    combineLatest(this.allData$, this.selectedData$)
          .subscribe(val => {
            const data = val[0];
            this.dataSource.data = data;
            this.nodeSelectionToggle(data[1]);
          }
         );
    

    工作堆栈闪电战:https://stackblitz.com/edit/material-tree-checklist-re96eq?file=app/app.component.ts

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2012-12-22
      • 2018-10-11
      • 2012-02-08
      • 2012-01-20
      相关资源
      最近更新 更多