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');
}
我在显示符合规范的数据时遇到困难。
例如,我有一个可用教师列表,但我只想显示女教师。
考虑以下数据,其中 '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');
}