如何动态检查具有比较对象和值的复选框?

时间:2017-03-24 12:34:01

标签: angular filter

我有一个像这样的群组列表:

{"data":
  [
    {"id":"221","title":"group1"},
    {"id":"18","title":"Group2"},
    {"id":"306","title":"Group3"},
    {"id":"19","title":"Group4"}
  ]
}

在模板中,我循环遍历上述对象的所有组,并显示如下:

<ion-select [(ngModel)]="user.group" multiple="true" name="group">
  <ion-option *ngFor="let group of groups" [value]="group.id" [selected]="ifIsInGroup(group.id)">
    {{ group.title }}
  </ion-option>
</ion-select>

在我的页面类中,我有一个对象,其中包含用户已分配到的组: { "mygroups":[{"title":"Group2","id":"18"}]}选择或不选择选项的功能:

ifIsInGroup(itemID){
  if(what to do here?){
    return true
  } else { 
    return false;
  }
}

如何检查数据(所有组)列表中是否存在mygroups项?并返回真正的母猪选择的选项?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您想要检查所有组列表中的任何项目是否存在itemId?

您可以更新ifIsInGroup函数以使用some函数,该函数返回布尔值:

this.allGroups.some(x => x.id == itemID;

因此,如果列表中存在某个项目,则不使用if / else语句返回true或false,而是将更新函数更新为:

ifIsInGroup(itemID){
  return this.allGroups.some(x => x.id == itemID;  //returns true if it exists, false if it doesn't exist in the list
}