在Angular Material Table中使用过滤器时如何排除undefined和null?
How to exclude undefined and null when use filter in Angular Material Table?
请帮忙。有什么办法可以从过滤中排除 undefined 和 null 吗?因此,如果单元格值为 null 或未定义,则当用户在搜索输入中键入 "null" 或 "undefined" 时不会显示它。
传入 table 数据:
dataSource: MatTableDataSource
以下方法应用于输入:
applyFilter(filterValue: string) {
this.dataSource.filter = filterValue.trim().toLowerCase();
}
我猜你正在寻找:
applyFilter(filterValue: string) {
if (!!filterValue) {
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() 函数被添加到输入中,它以输入值作为参数。在过滤时,您需要检查对象的传入数据数组(它将是您在 Material Table 中的行),并针对每个对象 属性 检查它是否为空或未定义。如果是 - 分配空字符串。然后这个空字符串将通过 material 与其他值连接在一起进行过滤。
请帮忙。有什么办法可以从过滤中排除 undefined 和 null 吗?因此,如果单元格值为 null 或未定义,则当用户在搜索输入中键入 "null" 或 "undefined" 时不会显示它。
传入 table 数据:
dataSource: MatTableDataSource
以下方法应用于输入:
applyFilter(filterValue: string) {
this.dataSource.filter = filterValue.trim().toLowerCase();
}
我猜你正在寻找:
applyFilter(filterValue: string) {
if (!!filterValue) {
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() 函数被添加到输入中,它以输入值作为参数。在过滤时,您需要检查对象的传入数据数组(它将是您在 Material Table 中的行),并针对每个对象 属性 检查它是否为空或未定义。如果是 - 分配空字符串。然后这个空字符串将通过 material 与其他值连接在一起进行过滤。