如何将此管道与此代码中的另一个管道一起用于过滤 Angular 中的数据? [英] How to use this pipe with another one in this code for filtering the data in Angular?
问题描述
我添加了表单输入,将按年龄范围过滤用户.为此创建了管道.现在我试图在工作示例中实现它,其中使用了其他管道来过滤基于其他形式的结果.我如何在这个工作示例中使用年龄范围管道并使这两个管道一起工作?代码如下:
年龄范围管道
transform(value: any, args?: any): any{ if(!args) 返回值;return value.filter( item => item.age > args[0] && item => item.age
其中 args[0] 是最小值,args[1] 是最大值.
工作搜索示例管道
import { Pipe, PipeTransform } from '@angular/core';@管道({name: '过滤器',})导出类 FilterPipe 实现 PipeTransform {变换(项目:任何[],值:字符串,道具:字符串):任何[] {如果 (!items) 返回 [];if (!value) 返回项目;返回 items.filter(singleItem =>singleItem[prop].toLowerCase().includes(value.toLowerCase()));}}
工作示例的 TypeScript
表单:FormGroup;@Output() 自动搜索:EventEmitter= new EventEmitter();@Output() groupFilters: EventEmitter= new EventEmitter();搜索文本:字符串 = '';构造函数(私人FB:FormBuilder,私有 userService:UserService) {}ngOnInit(): 无效 {this.buildForm();}buildForm():无效{this.form = this.fb.group({名称:new FormControl(''),前缀:new FormControl(''),位置:new FormControl(''),性别:new FormControl(''),agefrom: 新的 FormControl(''),年龄:新的FormControl('')});}搜索(过滤器:任何):无效{Object.keys(filters).forEach(key => filters[key] === '' ? delete filters[key] : key);this.groupFilters.emit(过滤器);}}
HTML
<div class="col-md-3"><输入类型="文本"formControlName="agefrom"类=形式控制"占位符=年龄"#搜索名称/>
<div class="col-md-3"><输入类型="文本"formControlName="nageto"类=形式控制"占位符=年龄"#搜索名称/>
<div class="col-md-3 col-sm-3"><select class="form-control"formControlName="前缀"><option value="">前缀</option><option value="MR">MR</option><option value="MS">MS</option></选择>