2016-12-27 36 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未選中我想從其用戶數組中刪除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

相關問題