0

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

我收到错误

错误类型错误:无法读取未定义的属性“已检查”

请帮我解决

4

1 回答 1

0

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

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

updateCheckedOptions(option, event) {
  this.optionsMap[option] = event.checked;
}
于 2018-04-07T14:51:57.047 回答