Я пытаюсь отфильтровать таблицу в зависимости от того, активны ли мои "проекты" или нет. В настоящее время у меня есть таблица, где «активный» - это столбец, и он будет отображать значение «истина» или «ложь» в зависимости от состояния проекта. Я хотел бы иметь возможность фильтровать мою таблицу на основе этого логического значения.
Таким образом, в настоящее время я использую меню выбора, которое будет возвращать либо true, либо false в зависимости от выбора. Из того, что я пытался, таблица не будет фильтровать по логическим значениям, только по строкам. Итак, у меня есть отфильтрованный предикат, который пытается принудительно применить фильтрацию только для моего активного столбца, однако в настоящее время он не работает должным образом.
//.ts file
dataSource: MatTableDataSource<OrderTemplateInterfaceWithId> = new MatTableDataSource([]);
displayedColumns = [
'dayOfWeek',
'startTime',
'endTime',
'technician',
'frequency',
'startDate',
'endDate',
'active',
'actions'
];
ngOnInit() {
this.dataSource.filterPredicate = (data: OrderTemplateInterfaceWithId, filter: string) => {
return data.active === (filter === "true") || data.active === (filter === "false");
};
}
applyFilter(filterValue: string) {
console.log(this.dataSource);
this.dataSource.filter = filterValue;
}
//.html file
<mat-form-field>
<mat-select (selectionChange)="applyFilter($event.value)">
<mat-option value='true'>Active</mat-option>
<mat-option value='false'>InActive</mat-option>
</mat-select>
</mat-form-field>
Таким образом, я ожидаю, что результаты отфильтруют мою таблицу по активному столбцу на основе моего меню выбора. Любая помощь будет принята с благодарностью, спасибо!