我正在尝试实现一个非常简单的管道,它从* ngFor获取数据,然后进行一些操作,但是当我在做data.filter()时它抛出一个错误"无法读取未定义的属性过滤器&#34 ;
这是我的管道
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'tripFilterByStartDate',pure: false })
export class tripFilterByStartDateModule implements PipeTransform {
transform(values: any, args: any[] = null) {
console.log(values);//
return values.filter(value => value.someValue);// throwing an error "cannot read property filter of undefined"
}
}
,这是我的HTML页面
<ion-card *ngFor="let tripData of tripList | tripFilterByStartDate" text-wrap>
</ion-card>
任何建议都会有很大的帮助
答案 0 :(得分:0)
cannot read property filter of undefined
错误明确指出当您的管道在初始更改检测时被调用时,您的values
对象不存在(未定义)。 From Pipe filter
方法已应用于values
变量。由于tripList
没有从服务器检索到列表,因此它失败了(每个impure
也会调用tick
管道。)
所以你应该在过滤器本身处理这种情况。
@Pipe({ name: 'tripFilterByStartDate',pure: false })
export class tripFilterByStartDateModule implements PipeTransform {
transform(values: any, args: any[] = null) {
if(!values) return []; //added this line
return values.filter(value => value.someValue);// throwing an error "cannot read property filter of undefined"
}
}