Я обычно использую атрибуты data- * в html.
В этом примере используется jQuery, но может быть адаптирован для другой библиотеки или ванильного Javascript.
Вы можете узнать больше о свойство набора данных здесь: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.dataset
Вам необходимо сбросить массив 'programNames', как только вы сдвинете состояние CheckBox следующим способом. Поскольку .subscribe () или другие методы обратного вызова имеют асинхронный характер. Эти асинхронные методы не будут применять немедленный эффект при переключении CheckBox до тех пор, пока не будет запущено событие подписки.
showInactivePrograms() {
this.programNames = [];
if (this.programChecked) {
this.programService.getInActiveProgramNames().subscribe(data => {
this.programNames = data;
});
}
else {
this.programService.getActiveProgramNames().subscribe(data => {
this.programNames = data;
});
}
}
Надеюсь, это поможет решить вашу проблему!