Я не могу отфильтровать данные таблицы при подписке на магазин в NGRX.
Я пробовал различные способы извлечения и отображения данных. Таблица данных загружается, как и ожидалось, но когда я пытаюсь отфильтровать данные, она просто отфильтровывает все.
из component.ts
export class CheckedInTableComponent implements OnInit {
private subscription: ISubscription;
// checkedInUsers: UserEvent[] = [];
dataSource: MatTableDataSource<UserEvent>;
userEvents: UserEvent[] = [];
constructor(private checkinService: CheckinService) { }
displayedColumns = ['name', 'supplier', 'visiting', 'dept', 'purpose', 'checkedIn', 'accessExpires', 'options'];
applyFilter(filterValue: string) {
filterValue = filterValue.trim(); // Remove whitespace
filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches
this.dataSource.filter = filterValue;
}
ngOnInit() {
this.subscription = this.checkinService.setCheckedInUsers().subscribe(res => { this.dataSource = new MatTableDataSource<UserEvent>(res) });
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
из service.ts
setCheckedInUsers() {
this.store.dispatch(new checkinActions.LoadCheckedin());
return this.store.pipe(select(getEvents),map(res => {return this.checkedInUsers = res}))
}
HTML
<mat-form-field>
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter">
</mat-form-field>
<table mat-table [dataSource]="dataSource" fxLayoutGap="1rem grid" fxFill>
<!-- Name Column -->
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name </th>
<td mat-cell *matCellDef="let element">
{{element.user.title}} {{element.user.firstName}} {{element.user.lastName}}
</td>
</ng-container>
...