Я хочу применить фильтр keyup к MatTable of Angular Material 6. Когда я создал таблицу, я использовал angular cli и переименовал класс.Теперь фильтр не работает, потому что функции «фильтра» не найдены.
- вот HTML-код компонента
<mat-form-field>
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Nro Empresa">
TS
export class TableSegundaGrillaComponent implements OnInit {
@ViewChild(MatPaginator) paginator: MatPaginator;
@ViewChild(MatSort) sort: MatSort;
dataSource: TableSegundaGrillaDataSource;
displayedColumns = ['ficha', 'cuit', 'razonSocial', 'deuda',
'deudaRealEstadoServicioId',
'deudaEstimadaEstadoServicioId'];
token: string;
dataGrilla: any;
constructor(private _configService: ConfigService, private http: Http,
private router: Router,
private grillasService: GestionEmpresasGrillasService) {
this.token = localStorage.getItem('TOKEN');
}
ngOnInit() {
this.bringData();
// this.dataSource = new TableSegundaGrillaDataSource(this.paginator,
this.sort);
}
bringData() {
const dto: GrillaCompleta = new class implements GrillaCompleta {
cargaExcepcion: number;
cuit: number;
descripcion: string;
deudaEstimada: number;
deudaEstimadaEstadoServicioId: { id: number; descripcion: string;
porcentajeDesde: number; porcentajeHasta: number };
deudaEstimadaTipoGestionId: { id: number; descripcion: string;
porcentajeDesde: number; porcentajeHasta: number };
deudaReal: number;
deudaRealEstadoServicioId: { id: number; descripcion: string;
porcentajeDesde: number; porcentajeHasta: number };
deudaRealTipoGestionId: { id: number; descripcion: string;
porcentajeDesde: number; porcentajeHasta: number };
ejecutivo: number;
empresaId: number;
interesComercial: string;
razonSocial: string;
};
console.log('Por entrar al service');
this.dataGrilla = this.grillasService.segundaGrilla(dto).subscribe(
result => {
this.dataGrilla = result;
console.log('grilla: ' + this.dataGrilla);
this.dataSource = new TableSegundaGrillaDataSource(this.paginator,
this.sort, this.dataGrilla);
}
);
}
applyFilter(filterValue: any) {
console.log(filterValue);
this.dataSource.data = filterValue.trim().toLowerCase();
}
А вот источник данных
export class TableSegundaGrillaDataSource extends
DataSource<TableSegundaGrillaItem> {
data: any = [];
constructor(private paginator: MatPaginator, private sort: MatSort,
public grilla: GrillaCompleta) {
super();
this.data = grilla;
console.log('datasource segunda: ' + this.data);
}
connect(): Observable<TableSegundaGrillaItem[]> {
const dataMutations = [
observableOf(this.data),
this.paginator.page,
this.sort.sortChange
];
// Set the paginators length
this.paginator.length = this.data.length;
return merge(...dataMutations).pipe(map(() => {
return this.getPagedData(this.getSortedData([...this.data]));
}));
}
disconnect() {}
Я просто хочу добавить некоторые фильтры keyup в материал данных.Если кто-нибудь знает, как добавить «фильтр» материала, я был бы признателен.
Спасибо всем!