2016-12-27 7 views
0

ここに文脈はあります:ionic2チェックボックスの状態を取得する方法

私はユーザーのリストがあります。

また、アイテムのリストがあり、各アイテムにはユーザーの配列が含まれています。

項目のリストがそのように表示されます。ユーザーは、どこか他の選択されたときに

<ion-list> 
    <ion-item *ngFor="let item of items"> 
     <ion-checkbox item-left [checked]="isChecked(item)" *ngIf="selected_user;"></ion-checkbox> 
     <ion-label> 
     {{ item.name }} 
     <br> 
     <ion-badge *ngFor="let user of item.users">{{ user.name }}</ion-badge> 
     </ion-label> 
    </ion-item> 
    </ion-list> 

基本的にはチェックボックスが明らかにされています。

私がしようとしているのは、チェックボックスの状態に応じて各アイテムのユーザー配列を変更することです。 item_a.usersが含まれている場合、例えば

は、user1selected_useruser1そのチェックボックスが(私はすでにことを持っている)checkedと明らかにしたが、item_bitem_cがチェックされる場合は、今、私は彼らのユーザアレイにuser1を追加したいとitem_a場合は、オフIでありますユーザ配列からuser1を削除します。

ここでキャッチするイベントはありますか? 一部のデータ構造ですべてのステータスをまとめて取得する方法はありますか、それとも各アイテムを個別に処理する必要がありますか?

ありがとうございました。

+0

私はあなたの質問で混乱しています。 isChecked関数がある場合、チェックされているかどうかを知ることができます。このデータに対して何らかの関数をマップして、後の結果を得ることはできませんか? –

+0

'isChecked'は、チェックボックスの開始ステータスを決定するために使用されます。私は 'ionChange'イベントを使用して、受け入れられた答えに示されているようにリストから項目を追加または削除します。とにかくありがとう。 – user1692261

答えて

1

APIドキュメントを確認here ionChangeイベントを使用できます。あなたのHTML内

、コンポーネントで

<ion-checkbox item-left [checked]="isChecked(item)" (ionChange)="insertUserToArray($event)" *ngIf="selected_user;"></ion-checkbox> 

機能を追加します。

insertUserToArray(item){ 
//check item.user and do stuff 
} 
+0

結局のところ、これはその行動を達成する最も簡単な方法です。ありがとう。 – user1692261

関連する問題