У меня есть сформированная группа фруктов, которая называется
fruits: FormGroup = formBuilder.group({
numberOfFruits: [0,Validators.min(0)],
apple: false,
mangoes: false
});
, а html выглядит следующим образом:
<div formGroupName="fruits">
<div>
<p>Key in the number of fruits you want to select</p>
</div>
<div>
<input readonly matInput formControlName="numberOfFruits" type="number">
</div>
<mat-checkbox formControlName="apple">Apple</mat-checkbox>
<mat-checkbox formControlName="mangoes">Mangoes</mat-checkbox>
</div>
Я бы хотел выполнить проверку следующим образом:
- Если выбрано 0 плодов, то не разрешать устанавливать какие-либо флажки (яблоки / манго).
- Если для числа плодов выбрано 1, разрешите / хотя бы один флажок выбран (либо яблоко / человек go)
- Если для общего количества фруктов выбрано 2 или более, необходимо установить по крайней мере 1 флажок (яблоко / манго / оба).
Я создал проверку для группы fruits
, написав индивидуальные условия следующим образом:
if (group.controls['numberOfFruits'].value === 1 || (group.controls['numberOfFruits'].value == 2 &&
group.controls['apple'].value === true)) {
group.controls['mangoes'].patchValue(false);
}
if (group.controls['numberOfFruits '].value == 1 || (group.controls['numberOfFruits'].value == 2 && group.controls['mangoes'].value === true)) {
group.controls['apple'].patchValue(false);
}
Существует ли лучший и эффективный способ достижения этого?