Angular 多个值上的角度2过滤管
我目前正在尝试筛选使用管道的用户表。我让它为一个选择工作,但我试图将其扩展到多个选择。请记住,这只适用于表中的一列。到目前为止,我有一个用户专栏,如:亚当、布伦达、丹、哈里。等请记住,此列可能是我希望返回的同名的倍数。我当前的管道实现如下所示:Angular 多个值上的角度2过滤管,angular,typescript,angular-pipe,Angular,Typescript,Angular Pipe,我目前正在尝试筛选使用管道的用户表。我让它为一个选择工作,但我试图将其扩展到多个选择。请记住,这只适用于表中的一列。到目前为止,我有一个用户专栏,如:亚当、布伦达、丹、哈里。等请记住,此列可能是我希望返回的同名的倍数。我当前的管道实现如下所示: import * as _ from 'lodash'; import {Pipe, PipeTransform} from '@angular/core'; @Pipe({ name: 'dataFilter' }) export class Dat
import * as _ from 'lodash';
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'dataFilter'
})
export class DataFilterPipe implements PipeTransform {
transform(array: any[], query: string): any {
if (query) {
return _.filter(array, row=>row.user.indexOf(query) > -1);
}
return array;
}
}
我的html只是:
<table [mfData]="tableData | dataFilter : filterQuery" #mf="mfDataTable">
其中filterQuery只是一个字符串。基本上,我想做的是将一个名称数组传递给filterQuery,以便它返回基于该数组的值。假设用户列的行有:
- 亚当,亚当,布伦达,丹,哈利,哈利,哈利
- 亚当,亚当,哈利,哈利,哈利
谢谢 我是通过这个管道工作的:
export class DataFilterPipe implements PipeTransform {
transform(array[], query:string[]):any[] {
if (typeof array === 'object') {
var resultArray = [];
if (query.length === 0) {
resultArray = array;
}
else {
resultArray = (array.filter(function (a) {
return ~this.indexOf(a.user);
}, query));
}
return resultArray;
}
else {
return null;
}
}
}
可能重复的