Угловое ожидание изменения переменной

#angular #typescript

Вопрос:

Я хочу, чтобы что-то выполнялось в функции только тогда, когда переменная имеет значение true. Эта changeAddressPermision переменная изменяется во всплывающем окне — когда пользователь нажимает «Отмена changeAddressPermision «, значение false, а когда пользователь нажимает «Подтвердить changeAddressPermision «, значение true. Всплывающее окно выглядит так:

 <div *ngIf="!isPopupClosed" class="popup">
    <p class="popup__text">Are you sure you want to change address?</p>
    <div class="popup-button__div">
        <button class="popup__button" (click)="isPopupClosed = true; changeAddressPermision = true">Yes</button>
        <button class="popup__button" (click)="isPopupClosed = true; changeAddressPermision = false">Cancel</button>
    </div>
</div>
 

Это должно работать так:
Функция x прослушивает изменение переменной — если пользователь нажимает » Да » — всплывающее окно закрывается, и функция x делает что-то на основе changeAddressPermision . Он должен ждать, пока пользователь нажмет на всплывающее окно, и если пользователь что — то нажмет-он что-то сделает, если changeAddressPermision == false or true

Ответ №1:

Вы можете достичь этого, добавив сеттер/геттер для changeAddressPermision следующих целей:

 set changeAddressPermision(value: boolean) {
    this._changeAddressPermision = value;

    if (value) {
        // do something here if value is true
    } else {
        // do something here if value is false
    }
}
get changeAddressPermision(): boolean {
    return this._changeAddressPermision;
}
private _changeAddressPermision: boolean;