angular - 在 Angular 材质表中使用过滤器时如何排除 undefined 和 null?
问题描述
请帮忙。有什么办法可以从过滤中排除 undefined 和 null ?因此,如果单元格值为 null 或未定义,则当用户在搜索输入中键入“null”或“undefined”时,它不会显示。
传入的表数据:
dataSource: MatTableDataSource
以下方法应用于输入:
applyFilter(filterValue: string) {
this.dataSource.filter = filterValue.trim().toLowerCase();
}
解决方案
我找到了答案,以防有人在寻找它。
applyFilter(filterValue: string) {
this.dataSource.data.forEach(element => {
for (const key in element) {
if (!element[key] || element[key] === null) {
element[key] = '';
}
}
});
this.dataSource.filter = filterValue.trim().toLowerCase();
}
applyFilter() 函数被添加到输入中,它将输入值作为参数。在过滤时,您需要检查对象的传入数据数组(它将是您在材料表中的行),并为每个对象属性检查它是否为空或未定义。如果是 - 分配空字符串。然后,这个空字符串将通过材料与其他值连接在一起进行过滤。
推荐阅读
- clang - 如何获取Clang编译器内置函数的源码?
- c - C中符号楔的右对齐
- css - 如何在 mat-对话框中放置列和行
- javascript - 如何使用 CSS 渐变在模拟时钟上突出显示 25 分钟?
- javascript - 未捕获的 TypeError:time0.getHours 不是函数
- c# - P/Invoke RemoveMenu SetLastError 不起作用
- python - if/elif 语句的 Python 缩进错误
- python - PyPDF2脚本在文件夹中拆分pdf的每一页
- javascript - 使用
- c++ - 成功构建后,简单 DLL 项目不会在输出目录中创建任何文件