Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 无法读取属性';过滤器';未定义的_Angular_Typescript - Fatal编程技术网

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());
}