У меня есть четыре (3 для вариантов и 1 для установленного плана) в моей форме со следующими требованиями:
- Если отмечены все три варианта, установленный план проверяется автоматически, и параметры исчезают
- Если установленный план проверяется, другие параметры также проверяются автоматически, а затем исчезают
- Если установленный план снимается, другие параметры появляются снова и тоже не проверяются
С моим кодом ниже, 1 и 2> 3 работают нормально, но 1> 3 не работает (опции не возвращаются, когда флажок установленного плана снят). Чего не хватает в моем коде? Возможно, здесь нет ничего сложного, но я буду признателен за любые советы.
Вот упрощенный Stackblitz , описывающий проблему и скопированный исходный код.
(Реальный код имеет некоторые анимации , поэтому важно сделать все опции, проверенные для требования 2, перед исчезновением)
HTML
<div [ngClass]="setClass()">
<div class="option">Option One
<input type="checkbox" [(ngModel)]="opt01" [checked]="setplan"/>
</div><br />
<div class="option">Option Two
<input type="checkbox" [(ngModel)]="opt02" [checked]="setplan"/>
</div><br />
<div class="option">Option There
<input type="checkbox" [(ngModel)]="opt03" [checked]="setplan"/>
</div>
</div><br>
<div style="background-color: lightgreen; width: 50%">Set Plan
<input type="checkbox" [(ngModel)]="setplan" [checked]="opt01 && opt02 && opt03"/>
</div>
TS
public opt01: boolean;
public opt02: boolean;
public opt03: boolean;
public setplan: boolean;
setClass() {
if (
(this.opt01 == true &&
this.opt02 == true &&
this.opt03 == true) ||
this.setplan == true
) {
return 'container-wrap -hidden';
} else if (this.setplan == false) {
return 'container-wrap';
}
}
CSS (не важно)
.container-wrap {
height: 120px;
position: relative;
overflow-y: hidden;
}
.container-wrap.-hidden {
height: 0px;
position: relative;
}
.option {
background-color: lightgray;
width: 50%
}