angular - 选择复选框 Angular 中的所有项目

标签 angular

我有一个包含多个复选框的列表。我做了一个单选和多选的功能,用户可以获取单选和多选的数据。 现在我遇到的问题是,当我删除列表中一个复选框的选择,然后选择所有复选框时,应该取消选择,但我无法做到这一点。

下面是我的代码 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/

相关文章:

angularjs - Sass 不使用 angular-cli 编译

html - FlexBox 内容溢出(Angular)

javascript - Angular 7 SSR,应用程序组件 ngOnInit() 被多次调用

javascript - 什么!在 Angular 语法中是什么意思?

Angular 12 使用组件中的管道

javascript - 获取对象数组然后将其显示在我的组件中

angular - 为什么 rxjs debounceTime 不适用于使用 'of' 运算符创建的可观察量?

android - 我如何在 ionic 2 中打开应用程序短信 Composer View

html - 我想在一个 div 中添加两个两个 div

angular - 在 Angular 中运行函数之前等待多个 http 请求完成