我正在创建一个包含项目和子项目的清单。我有一个按钮来重置所有复选框,我需要检查项目是否全部被检查,但不是子项目。
但是我的检查代码会记录所有清单框,而不仅仅是项目。
以下是模板:
<ion-list>
<ion-item *ngFor='let listitem of checkdetail.contents; let i=index'>
<ion-label class="mainitem" *ngIf="listitem.flavour === 'item'" text-wrap>{{listitem.content}}</ion-label>
<ion-checkbox color="primary" checked="false" *ngIf="listitem.flavour === 'item'" [(ngModel)]="item_ticks[i]" (ionChange)="updateTicks()"></ion-checkbox>
<ion-label class="subitem" *ngIf="listitem.flavour === 'subitem'" text-wrap>{{listitem.content}}</ion-label>
<ion-checkbox color="secondary" checked="false" *ngIf="listitem.flavour === 'subitem'" [(ngModel)]="subitem_ticks[i]" ></ion-checkbox>
</ion-item>
</ion-list>
以下是代码:
item_ticks = [];
subitem_ticks = [];
updateTicks() {
for(var item of this.item_ticks){
console.log(item);
}
}
resetTicks() {
let alert = this.alertCtrl.create({
title: 'Reset?',
message: 'Are you sure?',
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: () => {
console.log('Cancel clicked');
}
},
{
text: 'Reset',
handler: () => {
for (var i = 0; i < this.item_ticks.length; i++){
this.item_ticks[i] = false;
}
for (var i = 0; i < this.subitem_ticks.length; i++){
this.subitem_ticks[i] = false;
}
let toast = this.toastCtrl.create({
message: 'Checklist reset',
duration: 1000,
position: 'top'
});
toast.present();
}
}
]
});
alert.present();
}
为什么updateTicks()中的循环会同时注销this.item_ticks和this.subitem_ticks?