Angular 无法读取属性';过滤器';未定义的
我得到一个错误,如下所示:Angular 无法读取属性';过滤器';未定义的,angular,typescript,Angular,Typescript,我得到一个错误,如下所示: Cannot read property 'filter' of undefined. 组件模板: {{item}} 管道代码: @管道({ 名称:'搜索管道', 纯:假 }) 导出类SearchPipe实现了PipeTransform{ 转换(数据:任意[],搜索项:字符串):任意[]{ searchTerm=searchTerm.toUpperCase(); 返回数据。筛选器(项=>{ return item.toUpperCase().indexOf(se
Cannot read property 'filter' of undefined.
组件模板:
{{item}}
管道代码:
@管道({
名称:'搜索管道',
纯:假
})
导出类SearchPipe实现了PipeTransform{
转换(数据:任意[],搜索项:字符串):任意[]{
searchTerm=searchTerm.toUpperCase();
返回数据。筛选器(项=>{
return item.toUpperCase().indexOf(searchTerm)!=-1
});
}
}
错误的原因是什么?请尝试以下操作:
export class SearchPipe implements PipeTransform {
transform(data: any[], searchTerm: string): any[] {
if(!data) return [];
searchTerm = searchTerm.toUpperCase();
return data.filter(item => {
return item.toUpperCase().indexOf(searchTerm) !== -1
});
}
}
由于传入的数据是
null
,而filter
方法需要数据,因此导致了错误
下面是一个有效的实现:
transform(items:any[],filterQuery:any):any[]{
如果(!filterQuery)返回项目;
返回items.filter(item=>item.whateverProperty.toLowerCase().includes(filterQuery.toLowerCase());
}