Angular2 如何 ngFor 特定数据

Angular2 How to ngFor specific Data

我在显示符合规范的数据时遇到困难。

例如,我有一个可用教师列表,但我只想显示女教师。

考虑以下数据,其中 'userInfo' 数组中有 10 个用户数据。我只想给女老师看。

userInfo = [
    {gender: 'Male', Age: 25, name: John, teacherDetail : [...]},
    {gender: 'Female, Age: 26, name: Jessie, teacherDetail: [...]},
    ...
]

我怎样才能做到这一点?我应该使用过滤管吗?

有几种实现方式:

选项1:调用组件过滤数据的函数

<div *ngFor="let user of getUserInfo()">
  show female teacher only
</div>

getUserInfo() {
  return this.userInfo.filter(user => user.gender === 'Female');
}

选项 2:使用简单的 *ngIf 来控制要显示的内容

<div *ngFor="let user of userInfo">
  <div *ngIf="user.gender === 'Female'">
    show female teacher only
  </div>
</div>

选项3:使用自定义过滤器过滤管道数据(转换部分同选项1)

<div *ngFor="let user of userInfo | filterOnlyFemale">
  show female teacher only
</div>

transform(input: any) {
  return this.userInfo.filter(user => user.gender === 'Female');
}