这里是我如何使用过滤器:
<ion-item *ngFor="let contact of contacts | isMember">
<ion-label>{{contact.name}}</ion-label>
{{contact.phoneNumber}}-{{contact.isMember}}
</ion-item>
以下过滤器定义:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'isMember'})
export class IsMemberPipe implements PipeTransform {
transform(value: any): any {
if (value.isMember === true) {
return value;
}
return undefined;
}
}
目标是仅显示将isMember标志设置为true的行。
TypeError: Cannot read property 'isMember' of undefined
这是一个plnkr:
答案 0 :(得分:1)
确保在null
作为值传入时,您的管道不会爆炸。同时返回所有值。管道不会被每个值调用,但会立即调用所有联系人:
@Pipe({name: 'isMember'})
export class IsMemberPipe implements PipeTransform {
transform(value: any, crit:boolean): any {
console.log('x');
console.log('log', value, crit);
if (value) {
return value.filter(v => v.isMember === crit) {
}
return [];
}
}