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

时间:2018-04-07 06:29:00

标签: checkbox angular5 angular-material2 angular-changedetection

如何在角度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 = [];
}

我正在将错误视为

  

错误类型错误:无法读取未定义

的属性“已检查”

请帮我解决方案

1 个答案:

答案 0 :(得分:0)

event对象没有target属性(这是错误告诉你的)。

您正在寻找的内容很可能是事件对象本身的checked属性,因此您可以像这样修改您的函数:

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