, если вы хотите сделать это без реактивной формы, это один из вариантов. Оставьте printLists
, присвойте print.value
в итерации, основанной на $event.target.checked
. Вы можете использовать getter для флажка select all / deselect all, который мы также используем в функции checkAll
. Исходя из этого, я предлагаю следующее:
в итерации:
<input type="checkbox" [checked]="print.value" (change)="print.value = $event.target.checked" ...>
флажок выбрать все / отменить выбор всех:
<input type="checkbox" [checked]="isAll" (change)="checkAll()">
Затем checkAll()
функция и геттер isAll
:
checkAll(ev) {
// check if all are checked or not and act accordingly
if (!this.isAll) {
this.PrintList.forEach(x => (x.value = true));
} else {
this.PrintList.forEach(x => (x.value = false));
}
}
get isAll() {
// return true/false based on if all are checked or not
return this.PrintList.every(x => x.value === true);
}
Ваш раздвоенный STACKBLITZ