clr-checkbox 不同颜色的动态复选框集 AngularJs
clr-checkbox dynamic set of checkboxes with different colors AngularJs
我遵循 https://vmware.github.io/clarity/documentation/v0.13/checkboxes 并且需要在选中复选框时使用不同的颜色。
代码HTML:
<div class="form-group">
<label>With a list of objects</label>
<clr-checkbox *ngFor="let item of items$"
[(clrChecked)]="item.running"
[clrDisabled]="item.disabled">
{{ item.name }}
</clr-checkbox>
</div>
代码控制器:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-checkboxgroup',
templateUrl: './checkboxgroup.component.html',
styleUrls: ['./checkboxgroup.component.scss']
})
export class CheckboxgroupComponent implements OnInit {
items$: Object;
constructor() { }
ngOnInit() {
this.items$ = [{id:1,name:'Custom',color:'cyan'},
{id:2,name:'Primary',color:'green',running:false,disabled:false},
{id:3,name:'Info',color:'blue',running:false,disabled:false},
{id:4,name:'Warning',color:'yellow',running:false,disabled:false},
{id:5,name:'Danger',color:'red',running:false,disabled:false}];
}
}
您可以借助 CSS 中的 currentColor
关键字和对默认 Clarity 复选框模板稍作更改来实现。模板如下所示:
<clr-checkbox *ngFor="let item of items$" [style.color]="item.color" [(clrChecked)]="item.running" [clrDisabled]="item.disabled">
<span class="checkbox-label">{{ item.name }}</span>
</clr-checkbox>
然后在您的组件 CSS 中应用以下 CSS。
.checkbox-label {
color: #000;
}
clr-checkbox ::ng-deep input[type=checkbox]:checked+label::before {
background-color: currentColor;
}
您可以看到我在 clr-checkbox
的颜色 属性 上使用了样式绑定。因此,选中复选框的颜色将通过 currentColor
.
继承该颜色
顺便说一句,如果您在全局样式文件中添加上述 CSS 片段而不是组件样式,则不需要 ::ng-deep
.
这是工作示例:
https://stackblitz.com/edit/clr-checkbox-checkbox-multi-color
我遵循 https://vmware.github.io/clarity/documentation/v0.13/checkboxes 并且需要在选中复选框时使用不同的颜色。
代码HTML:
<div class="form-group">
<label>With a list of objects</label>
<clr-checkbox *ngFor="let item of items$"
[(clrChecked)]="item.running"
[clrDisabled]="item.disabled">
{{ item.name }}
</clr-checkbox>
</div>
代码控制器:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-checkboxgroup',
templateUrl: './checkboxgroup.component.html',
styleUrls: ['./checkboxgroup.component.scss']
})
export class CheckboxgroupComponent implements OnInit {
items$: Object;
constructor() { }
ngOnInit() {
this.items$ = [{id:1,name:'Custom',color:'cyan'},
{id:2,name:'Primary',color:'green',running:false,disabled:false},
{id:3,name:'Info',color:'blue',running:false,disabled:false},
{id:4,name:'Warning',color:'yellow',running:false,disabled:false},
{id:5,name:'Danger',color:'red',running:false,disabled:false}];
}
}
您可以借助 CSS 中的 currentColor
关键字和对默认 Clarity 复选框模板稍作更改来实现。模板如下所示:
<clr-checkbox *ngFor="let item of items$" [style.color]="item.color" [(clrChecked)]="item.running" [clrDisabled]="item.disabled">
<span class="checkbox-label">{{ item.name }}</span>
</clr-checkbox>
然后在您的组件 CSS 中应用以下 CSS。
.checkbox-label {
color: #000;
}
clr-checkbox ::ng-deep input[type=checkbox]:checked+label::before {
background-color: currentColor;
}
您可以看到我在 clr-checkbox
的颜色 属性 上使用了样式绑定。因此,选中复选框的颜色将通过 currentColor
.
顺便说一句,如果您在全局样式文件中添加上述 CSS 片段而不是组件样式,则不需要 ::ng-deep
.
这是工作示例:
https://stackblitz.com/edit/clr-checkbox-checkbox-multi-color