Я думаю, вы слишком усложняете вещи.
Измените ваш массив так, чтобы у каждой записи было свойство name
и checked
, и свяжите с ними флажки с помощью [(ngModel)]
ts
array = [
{
name: 'one',
checked: false
},
{
name: 'two',
checked: false
},
{
name: 'three',
checked: false
},
{
name: 'four',
checked: false
},
{
name: 'five',
checked: false
}
]
getCheckboxes() {
console.log(this.array.filter(x => x.checked === true).map(x => x.name));
}
html
<div *ngFor="let item of array">
<mat-checkbox [(ngModel)]="item.checked" (change)="getCheckboxes()">{{item.name}}</mat-checkbox>
</div>
Демо