[英]Angular : uncheck indeterminate checkbox not working
I have very simple requirement.我有很简单的要求。 Lets say checkbox has three states, indeterminate, checked & unchecked.
假设复选框具有三种状态,不确定、选中和未选中。 What I want :
我想要的是 :
But in angular2 I am not able to get solve first requirement.但是在 angular2 中,我无法解决第一个要求。 Whatever I do, when click on indeterminate checkbox it get checked (Not expected).
无论我做什么,当单击不确定复选框时,它都会被选中(不期望)。
Please check stackbliz请检查stackbliz
export class AppComponent {
name = 'Angular';
milestone = { status: "crossed" };
checkMilestone(milestone) {
switch (milestone.status) {
case "crossed": {
milestone.status = "unchecked";
break;
}
case "unchecked": {
milestone.status = "checked";
break;
}
case "checked": {
milestone.status = "unchecked";
break;
}
}
}
}
HTML HTML
<input type="checkbox" [indeterminate]="milestone?.status === 'crossed'" [checked]="milestone?.status === 'checked'" (change)="checkMilestone(milestone)"> Status: {{ milestone?.status }}
I want to implement parent child checkbox and select all functionality similar to this fiddle but in angular.我想实现父子复选框并选择与此小提琴类似但有角度的所有功能。
Yes, you can achieve that, just update the code to the following:是的,您可以实现这一点,只需将代码更新为以下内容:
HTML: HTML:
<input #input type="checkbox" [indeterminate]="milestone?.status === 'crossed'"
(click)="checkMilestone($event)"
> Status: {{ milestone?.status }}
TypeScript:打字稿:
checkMilestone(e) {
switch (this.milestone.status) {
case "crossed": {
e.target.checked = false;
this.milestone.status = "unchecked";
break;
}
case "unchecked": {
this.milestone.status = "checked";
break;
}
case "checked": {
this.milestone.status = "unchecked";
break;
}
}
}
something for reference: Prevent checkbox from ticking/checking COMPLETELY供参考: 防止复选框完全勾选/检查
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.