在Ionic 3中仅允许选择一项检查,而禁用其他选项

时间:2019-04-28 10:06:46

标签: angular typescript checkbox ionic3

我一直在关注此解决方案

How to get selected only single checkbox from multiple checkboxes using ionic 2 and angular2 工作正常,但问题是

当我选中任何复选框时,其他复选框将被禁用(这是我想要的),但是如果我取消选中同一复选框,则另一复选框仍将保持禁用状态。取消选中复选框后如何启用它们?

这是我的代码 .ts文件

export class list {
checkedIdx = -1;
}

.html文件

<ion-card class="ion-card">
  <ion-item *ngFor="let item of options; let i=index">
    <ion-label>{{item}}</ion-label>
    <ion-checkbox item-left [ngModel]="checkedIdx == i"(ngModelChange)="$event ? checkedIdx = i : checkedIdx = -1" [disabled]="checkedIdx >= 0 && checkedIdx != i"></ion-checkbox>
  </ion-item>
</ion-card>

1 个答案:

答案 0 :(得分:0)

  

检查 WORKING STACKBLITZ

一次只能选中一个复选框

您的 component.html 应该是这样的:〜

<ion-card class="ion-card">
    <ion-item *ngFor="let category of categories; let i = index">
        <ion-label>{{category.name}}</ion-label>
        <ion-checkbox 
    [disabled]="categories[i].value" 
    (click)="selection(category.name);">
        </ion-checkbox>
    </ion-item>
</ion-card>

您的 component.ts 可能是这样的:〜

  selection(name: string) {
    this.categories.forEach(x => {
      if (x.name !== name) {
        x.value = !x.value
      }
    })
  }

希望这会有所帮助!