如何在更改时获取复选框单击事件

How to get checkbox click event on change

如何在 angular 5 中的更改中获取复选框单击事件 我使用了以下代码

html代码

  <mat-accordion>
         <mat-expansion-panel>
            <mat-expansion-panel-header>
                option
              </mat-expansion-panel-header> 
              <mat-checkbox *ngFor="let option of options; let i = index"
              value="option" [checked]="options.indexOf(option) >= 0"
                               (change)="updateCheckedOptions(option, $event)">  {{option}}</mat-checkbox>
            </mat-expansion-panel>
        </mat-accordion>

ts代码

initOptionsMap() {
  for (let x = 0; x<this.order.options.length; x++) {
      this.optionsMap[this.options[x]] = true;
  }
}
updateCheckedOptions(option, event) {
  this.optionsMap[option] = event.target.checked;
}
updateOptions() {
  for(const x in this.optionsMap) {
      if(this.optionsMap[x]) {
          this.optionsChecked.push(x);
      }
  }
  this.options = this.optionsChecked;
  this.optionsChecked = [];
}

我收到错误

ERROR TypeError: Cannot read property 'checked' of undefined

请帮我解决问题

event 对象没有 target 属性(这是错误信息)。

您要查找的很可能是事件对象本身的 checked 属性,因此您可以这样修改您的函数:

updateCheckedOptions(option, event) {
  this.optionsMap[option] = event.checked;
}