Фильтровать в DataTable материала с пользовательским именем класса - PullRequest
0 голосов
/ 16 октября 2018

Я хочу применить фильтр 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 в материал данных.Если кто-нибудь знает, как добавить «фильтр» материала, я был бы признателен.

Спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...