2017-10-15 5 views
0

Wenn ich ein dynamisches Kontrollkästchen wie unten ausgefüllt habe, wie kann ich überprüfen, ob alle Kontrollkästchen aktiviert sind, so dass ich die Schaltfläche deaktivieren/aktivieren kann, je nachdem ob alle markiert sind oder nicht.Überprüfen, ob alle Kontrollkästchen aktiviert sind

Im mit Angular 2+

<ion-item *ngFor="let field of filters"> 
    <ion-checkbox [(ngModel)]="filters[field]"></ion-checkbox> 
</ion-item> 
+0

Sie können prüfen, ob alle 'Filter [field]' wahr sind –

+0

Can postest du dein 'filters' Objekt? –

Antwort

0

Was Sie tun können, ist ein boolean den Wert Ihrer filters Array einzuführen und dann, dass auf Ihre Zwei-Wege-Bindung und bei einer Änderung Prüfung vergeben werden, wenn alle Kontrollkästchen sind geprüft und eine andere boolean-Flag für die Taste verwenden:

Ihr Array:

filters = [{value:'val1',isChecked:false}, {value:'val2', isChecked:false}] 

Vorlage:

<ion-item *ngFor="let field of filters"> 
    <ion-checkbox (click)="check()" [(ngModel)]="field.isChecked"> 
    {{field.value}} 
    </ion-checkbox> 
</ion-item> 
<button ion-button [disabled]="!allChecked">Button</button> 

und dann das Click-Ereignis:

check() { 
    this.allChecked = this.filters.every(x => x.isChecked === true) 
} 

DEMO:https://plnkr.co/edit/sVwz5OjL559x7eUlGK0c?p=preview

Verwandte Themen