如何使用ionic 2和angular2从多个复选框中仅选中一个复选框

时间:2016-09-07 07:25:32

标签: checkbox angular typescript ionic2

目前正在研究ionic2和angular2 我有7个复选框的字段。我只需要选择一个特定的复选框,剩下的复选框应该被禁用。同样,我还需要获得剩余的6个复选框。我怎样才能做到这一点, 这是我在HTML中使用的代码

// payment.HTML

<ion-card class="ion-card">
        <ion-item>
            <ion-label>Cash On Delivery</ion-label>
            <ion-checkbox item-right checked="true" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>PayuMoney Wallet</ion-label>
            <ion-checkbox item-right  checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Pay with Paytm Wallet</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Credit/ Debit Card</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Net Banking</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>PayZapp</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Pay using MobiKwiK Wallet</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

    </ion-card>

1 个答案:

答案 0 :(得分:3)

这可能会做你想要的(未测试):

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

  options = [
    'Cash On Delivery',
    'PayuMoney Wallet',
    'Pay with Paytm Wallet',
    'Credit/ Debit Card',
    'Net Banking',
    'PayZapp',
    'Pay using MobiKwiK Wallet'
  ];
}