在Angular中,可以使用管道(pipe)来根据动态列进行过滤。下面是一个示例代码:
dynamicFilter
的管道:import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'dynamicFilter'
})
export class DynamicFilterPipe implements PipeTransform {
transform(items: any[], column: string, filterValue: string): any[] {
if (!items || !column || !filterValue) {
return items;
}
return items.filter(item => item[column].toLowerCase().includes(filterValue.toLowerCase()));
}
}
- {{ item.name }}
在上述示例中,我们使用了一个输入框和一个下拉列表来选择要过滤的列和过滤值。selectedColumn
和filterValue
分别与输入框和下拉列表进行了双向绑定。dynamicFilter
管道在*ngFor
指令中使用,根据选定的列和过滤值对项目进行过滤。
请注意,上述示例中的items
、columns
和name
均为虚拟数据,您需要根据您的实际需求进行相应的修改。