У меня есть два флажка, и цель состоит в том, чтобы позволить только один флажок быть выбранным за один раз
Далее необходимо выполнить другую задачу в зависимости от того, выбран ли определенный флажок, или в случае, если оба флажка сняты.
Я реализовал это и столкнулся с проблемой при выполнении задачи, когда один из флажков установлен или оба сняты
<div *ngFor="let chk of checkboxes">
<input type="checkbox" [checked]="chk.checked"
(click)="uncheckOther(chk)"> {{chk.value}}
</div>
Код TS:
checkboxes = [{ checked: false, value: 'Request' }, { checked: false,
value: 'Reservation' }];
uncheckOther(chk) {
//uncheck all
this.checkboxes.forEach(x => {
if(x.checked == true)
x.checked = false;
})
//check the selected
if(chk.checked == true) {
chk.checked = false;
} else {
chk.checked = true;
}
//Execute task if any one of the checkboxes are selected
if(chk.value === "Request" && chk.checked == true){
console.log("call request data")
} else if(chk.value === "Reservation" && chk.checked == true){
console.log("call Reservation data");
}
//Execute task if none of them is checked
this.checkboxes.forEach(x => {
if(x.checked === false)
console.log("call both combined data")
})
}
Одновременно должен быть установлен только один флажок, и некоторые задачи должны выполняться в зависимости от установленного флажка или от того, что оба флажка сняты, что также является случаем по умолчанию (или может быть отключен пользователем)