angular - 过滤后角度材料表分页器未更新
问题描述
我正在使用多选选择框值过滤表数据源。当我从选择框中选择选项时,表记录正在更新。但是分页器没有更新。
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
ngOnInit() {
this.dataSource.paginator = this.paginator;
this.dataSource.filterPredicate = (tdata: Catalog, filter: string) => {
return this.filters.length > 0 ?
this.filters.some(e => e === tdata.type) :
true;
};
}
applyFilter() {
this.tdataSource.filter = 'trigger filter';
}
<mat-form-field>
<mat-label>Filters</mat-label>
<mat-select multiple [(value)]="filters">
<mat-option *ngFor="let item of options" [value]="item" (click)="applyFilter(item)">
{{item}}
</mat-option>
</mat-select>
</mat-form-field>
在下图中,我只过滤数据库。表正在根据过滤器进行更新。但是分页器正在显示所有记录。
解决方案
您是否尝试在过滤器方法中再次初始化分页器:
applyFilter(filterValue: string) {
this.dataSource.filter = filterValue.trim().toLowerCase();
setTimeout(() => this.dataSource.paginator=this.paginator;
setTimeout(() => this.dataSource.sort = this.sort);
}
推荐阅读
- android - 在 Surface、SurfaceControl、WindowManager 和 OpenGL 的上下文中,布局如何在 Android 中呈现在屏幕上?
- c# - 将参数传递给 window.location.href 失败
- android - 谷歌登录抛出 com.google.android.gms.common.api.ApiException: 10
- java - 在同一场景中在移动和桌面浏览器/驱动程序之间切换 - java selenium cucumber
- node.js - 使用 React、Express 获取 404 onSubmit
- javascript - 我可以在 .reduce 方法上更改累加器的类型吗?
- python - 根据另一列中的条件,使用 .diff() 函数的结果在 pandas df 中创建一个新列
- swift - Swift 协议在同一行声明多个属性
- java - SwitchPreferenceCompat setOnPreferenceChangeListener 使应用程序崩溃
- javascript - JavaScript 中的抽象操作