Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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
Angularjs 如何在angular2中对列表应用搜索筛选器?_Angularjs_Angular_Typescript - Fatal编程技术网

Angularjs 如何在angular2中对列表应用搜索筛选器?

Angularjs 如何在angular2中对列表应用搜索筛选器?,angularjs,angular,typescript,Angularjs,Angular,Typescript,我想对存储在数组中的数据列表实现搜索过滤器,我想应用搜索过滤器,就像在数据表中搜索一样。如下图所示。 但在这方面(姓名、地址等)是不固定的 我怎样才能做到这一点呢? 如果要按其他字段过滤,只需将它们添加到管道中: import { Pipe,PipeTransform} from '@angular/core'; @Pipe({ name: 'searchFilter' }) export class SearchFilter implements PipeTransform {

我想对存储在数组中的数据列表实现搜索过滤器,我想应用搜索过滤器,就像在数据表中搜索一样。如下图所示。 但在这方面(姓名、地址等)是不固定的

我怎样才能做到这一点呢?

如果要按其他字段过滤,只需将它们添加到管道中:

import { Pipe,PipeTransform} from '@angular/core';

@Pipe({
    name: 'searchFilter'
})
export class SearchFilter implements PipeTransform {
    transform(items: any[], criteria: any): any {

        return items.filter(item =>{
           for (let key in item ) {
             if((""+item[key]).toLocaleLowerCase().includes(criteria.toLocaleLowerCase())){
                return true;
             }
           }
           return false;
        });
    }
}

    @Component({
      selector: 'sites-component',
      template: `
        <input #search  (keyup)="0">
        <ul>
          <li *ngFor="let site of (sites | searchFilter: search.value )">(...)</li>
        </ul>
      `
    })
    export class SitesComponent{
       sites : Array;
    }
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
名称:'searchFilter'
})
导出类SearchFilter实现PipeTransform{
转换(项:任意[],条件:任意):任意{
返回项目。筛选器(项目=>{
用于(让输入项){
if((“”+项[key]).toLocaleLowerCase()包括(criteria.toLocaleLowerCase()){
返回true;
}
}
返回false;
});
}
}
@组成部分({
选择器:'站点组件',
模板:`
    (…)
` }) 导出类站点组件{ 地点:阵列; }

别忘了在模块中声明管道。

我认为此管道只允许按“名称”进行筛选但我也希望允许按地址或联系人号等进行筛选。@VedTest ok Wait谢谢您的快速帮助,但正如我在问题中提到的,这些字段不是固定的,它们将根据用户节进行动态更改。@BougarfaouiElhoucine我得到的PipeTransform没有定义,虽然我在主模块和组件中都导入了模块。您能帮忙吗?criteria保存着
search的值。值
传递到管道中。如果您愿意,您可以更改其名称。而
包括
是一个javascript函数,请参见此处: