如何在更改时获取复选框单击事件
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;
}
如何在 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;
}