我有一个包含多个复选框的列表。我做了一个单选和多选的功能,用户可以获取单选和多选的数据。 现在我遇到的问题是,当我删除列表中一个复选框的选择,然后选择所有复选框时,应该取消选择,但我无法做到这一点。
下面是我的代码 HTML
<div item-start class="checkbox-wrapper">
<input type="checkbox" value="Select All" (change)="selectAllLineItem($event)">
</div>
<ion-card *ngFor="let putAwayPurchaseOrderListDetails of putAwayPurchaseOrderListDetailsData | filter:searchText; let i = index">
<div class="checkbox-wrapper">
<input class="form-check-input[(ngModel)]="putAwayPurchaseOrderListDetailsData[i].checked" type="checkbox" >
</div>
<div>
{{putAwayPurchaseOrderListDetails.PO_NUMBER}}
</div>
</ion-card>
TS
selectedLineItem() {
const selectedLineItem = this.putAwayPurchaseOrderListDetailsData.filter((putAwayPurchaseOrderListDetails) => putAwayPurchaseOrderListDetails.checked);
this.navCtrl.push(PutAwayPurchaseOrderItemDetailsPage,{selectedLineItem})
}
selectAllLineItem(event) {
console.log(event)
const checked = event.target.checked;
this.putAwayPurchaseOrderListDetailsData.forEach(item => item.checked = checked);
}
最佳答案
一个快速、可能的解决方案。
首先,拆分 ngModel 双重绑定(bind)并创建一个处理程序:
...
<input type="checkbox" value="Select All" [(ngModel)]="selectAllItems" (change)="selectAllLineItem($event)">
...
<input class="form-check input
[ngModel]="putAwayPurchaseOrderListDetailsData[i].checked"
(ngModelChange)="onItemChange(i, $event)"
type="checkbox" >
在组件 ts 中:
// new property:
selectAllItems: boolean = false;
...
onItemChange(itemIdx: number, isChecked: boolean) {
this.putAwayPurchaseOrderListDetailsData[itemIdx].checked = isChecked;
// doesn't if selectAllItems is already false.
if (!isChecked) this.selectAllItems = false;
}
应该够了。
关于angular - 选择复选框 Angular 中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60800300/