Есть два вида пути:
Сначала добавляется state
и используется [(ngModel)]
для обновления состояния флажка.
Демо (я не делаю новую, а использую одну из существующих демонстраций, которую я улучшил)
Код:
this.data.forEach(x => { x.state = ev.target.checked; });
обратите внимание, что this.data
- это массив, который содержит привязку состояния к [(ngModel)]
[(ngModel)]="content.state"
в примере.
Второй обнаруживает вручную:
Демо
И то, и другое почти одно и то же: проверять или снимать все. Разница в том, что я добавляю условие, чтобы где-нибудь быть исключенным из проверки. Что вы могли бы легко реализовать, если бы использовали первый способ.
Код:
const input = document.getElementsByTagName('input');
Array.from(input).forEach(res => {
if (res.type == 'checkbox') {
if (res.attributes[2].value != 'anywhere') {
res.checked = false;
}
}
})
Обновление:
Чтобы предотвратить снятие отметки, когда где-либо не отмечено, вы можете использовать ViewChild
, чтобы получить в любом месте проверенное состояние:
@ViewChild('anywhereChk') anywhere;
затем добавьте дополнительное условие:
if (res.attributes[2].value != 'anywhere' && this.anywhere.nativeElement.checked==true) {
res.checked = false;
}
Демо