使用自定义筛选器
在Angular5中,datatable的筛选器无法与筛选器指令配合使用,因此我们需要使用自定义筛选器。以下是解决方法的示例代码:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'customFilter' }) export class CustomFilterPipe implements PipeTransform { transform(items: any[], searchText: string): any[] { if (!items) return []; if (!searchText) return items; searchText = searchText.toLowerCase(); return items.filter(item => { return item.name.toLowerCase().includes(searchText); }); } }
Name | Age | Gender |
---|---|---|
{{item.name}} | {{item.age}} | {{item.gender}} |
export class MyComponent { searchText: string = ''; items = [ { name: 'John', age: 31, gender: 'Male' }, { name: 'Jane', age: 25, gender: 'Female' }, { name: 'Bob', age: 42, gender: 'Male' } ]; }
现在,你的datatable的筛选器应该可以正常工作了!