如何在角度材料中获取复选框数据

vin*_*459 5 material-design angular-material angular

我想在用户选择时获取所有复选框项目,现在正在获取数据但问题是复选框不会改变,我的意思是当我单击复选框时,如果选中了初始状态,则始终保持选中状态,反之亦然反之。

this.settings_data = ["one", "two", "three", "four", "five"];

<div class="settings_head" fxFlex="50" *ngFor="let item of settings_data">
  <mat-checkbox formControlName="settingsCheckboxvalues" (ngModelChange)="seleteditems($event,item)">{{item}}</mat-checkbox>
</div>



seleteditems(event, value) {
  this.allitems.push(value);
}
Run Code Online (Sandbox Code Playgroud)

bug*_*ugs 6

我认为你把事情复杂化了。

修改您的数组,使每个条目都有一个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));
  }
Run Code Online (Sandbox Code Playgroud)

html

<div *ngFor="let item of array">
    <mat-checkbox [(ngModel)]="item.checked" (change)="getCheckboxes()">{{item.name}}</mat-checkbox>
</div>
Run Code Online (Sandbox Code Playgroud)

演示