2016-12-27 52 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