angular - Angular Material 2更改根后代复选框颜色
问题描述
我正在使用带有复选框的角度材料 2 树,我想动态更改复选框颜色。简单的方法是单击它(触发(更改)事件)并更改MatCheckboxChange.source.color
。问题是,当我单击根节点时,有什么方法可以获取所有后代复选框源(更改所有后代的颜色)?这里的例子
模板
<mat-checkbox class="checklist-leaf-node"
[checked]="checklistSelection.isSelected(node)"
(change)="todoLeafItemSelectionToggle(node, $event)">{{node.item}}</mat-checkbox>
代码
todoLeafItemSelectionToggle(node: TodoItemFlatNode, event: MatCheckboxChange): void {
event.source.color = 'warn'; // <---
this.checklistSelection.toggle(node);
this.checkAllParentsSelection(node);
}
解决方案
向模板添加颜色变量
<mat-checkbox class="checklist-leaf-node"
[checked]="checklistSelection.isSelected(node)"
[color]="color"
(change)="todoLeafItemSelectionToggle(node, $event)">{{node.item}}</mat-checkbox>
然后在你的 javascript
this.color = 'primary';
this.color = 'accent';
this.color = 'warn';
编辑:
用于动态颜色[color]="checklistSelection.isSelected(getParentNode(node)) ? 'primary' : 'warn'"
推荐阅读
- url - AudioInputStream 正在抛出 NullPointerException
- entity-framework - 如何为多个拥有的导航属性使用相同的数据库表,这些导航属性是与 EF Core 相同类型的集合?
- triggers - 创建相关对象时如何使用触发器将复选框设置为true
- java - 没有 FXML 文件的 JavaFX Scene Builder 替代方案
- excel - VBA - 重命名文件
- python - Python:如何找到值为 n 的所有行的平均值?
- java - Talend tRunJob 返回 NoClassDefFoundError 和子作业列表
- php - PHP - 使用 array_rand 选择时停止缓存图像
- java - 关于 Java 中 Selenium 并行测试性能的问题
- c# - 我的计算器应用程序未按预期工作