我是角度/离子的新手
我有父复选框,点击它,我想启用它所有子的勾选,反之亦然
这是我已经厌倦但无法正常工作的代码:
主页.html
<form [formGroup]="form">
<ion-item>
<ion-checkbox slot="start" formControlName="AllBulkhead" (ionChange)="checkBoxAllLongiClick($event)">
</ion-checkbox>
<ion-label>All longitudinal bulkheads</ion-label>
</ion-item>
<div class="subCheckbox">
<ion-item>
<ion-checkbox slot="start" formControlName="longiBulkhead" (ionChange)="checkBoxLongiClick($event)">
</ion-checkbox>
<ion-label>Longitudinal bulkheads</ion-label>
</ion-item>
<ion-item>
<ion-checkbox slot="start" formControlName="outerBulkhead" (ionChange)="checkBoxOuterLongiClick($event)">
</ion-checkbox>
<ion-label>Outer longitudinal bulkheads</ion-label>
</ion-item>
<ion-item>
<ion-checkbox slot="start" formControlName="innerBulkhead" (ionChange)="checkBoxInnerLongiClick($event)">
</ion-checkbox>
<ion-label>Inner longitudinal bulkheads</ion-label>
</ion-item>
</div>
</form>
主页.ts
constructor(private _fb: FormBuilder){
this.form = this._fb.group({
AllBulkhead: false,
longiBulkhead: false,
outerBulkhead: false,
innerBulkhead: false,
});
}
checkBoxAllLongiClick(e) {
if (e.currentTarget.checked) {
this.form.controls['longiBulkhead'].patchValue(true);
this.form.controls['outerBulkhead'].patchValue(true);
this.form.controls['innerBulkhead'].patchValue(true);
}
else {
this.form.controls['longiBulkhead'].patchValue(false);
this.form.controls['outerBulkhead'].patchValue(false);
this.form.controls['innerBulkhead'].patchValue(false);
}
}
checkBoxLongiClick(e){
this.checkBoxSubLongiClick();
}
checkBoxOuterLongiClick(e){
this.checkBoxSubLongiClick();
}
checkBoxInnerLongiClick(e){
this.checkBoxSubLongiClick();
}
checkBoxSubLongiClick() {
if (this.form.get('longiBulkhead').value &&
this.form.get('outerBulkhead').value &&
this.form.get('innerBulkhead').value) {
this.form.controls['AllBulkhead'].patchValue(true);
} else {
this.form.controls['AllBulkhead'].patchValue(false);
}
}
我想要做的是当我点击AllBulkhead复选框时,我想选中/取消选中它的所有 3 个子复选框,即longiBulkhead、outerBulkhead、innerBulkhead
下面是我的代码在我取消选中 3 个子复选框中的任何一个时出现意外行为,因此它不会取消选中父复选框,即AllBulkhead复选框
我在哪里犯错有人可以帮助我吗? 先感谢您!