use*_*222 2 javascript css checkbox typescript angular
我想输入一个具有三种状态的输入框:选中,未选中和划线(又名失败)当前,我能够进行选中/取消选中并相应地更改计算
<input type="checkbox" [ngStyle]="{content: expression}" *ngIf="milestone?.description" [checked]="milestone?.status == 'checked'" (change)="checkMilestone(milestone,initiative, $event, '')">Run Code Online (Sandbox Code Playgroud)
但是,我很难添加crossed(X)复选框。有谁知道应该怎么做?我是否应该声明如下内容:
states = [
{ id: 0, status: 'checked'},
{ id: 1, status: 'unchecked'},
{ id: 2, status: 'crossed'}
];
Run Code Online (Sandbox Code Playgroud)
并添加样式并相应地进行更改?我不确定如何添加三种样式,而不是两种。
可以使用属性绑定来设置复选框的不确定状态。这是标记的简化版本,显示了状态绑定:indeterminate
<input type="checkbox" [indeterminate]="milestone?.status === 'crossed'"
[ngModel]="milestone?.status === 'checked'" (ngModelChange)="checkMilestone(milestone)">
Run Code Online (Sandbox Code Playgroud)
该checkMilestone方法可能是这样的:
checkMilestone(milestone) {
switch (milestone.status) {
case "checked": {
milestone.status = "unchecked";
break;
}
case "unchecked": {
milestone.status = "crossed";
break;
}
case "crossed": {
milestone.status = "checked";
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关演示,请参见此堆叠闪电战。