完全匹配的 Mat table 文件管理器
Mat table filer on exact match
如何过滤完全匹配?
如果我对 25915b8d-8b7c-41fe-b015-9b2e0a7d194b 进行过滤,那么两者都会
25915b8d-8b7c-41fe-b015-9b2e0a7d194b
1225915b8d-8b7c-41fe-b015-9b2e0a7d194b
被退回。我要完全匹配,不包含。
applyFilter(filterValue: string) {
filterValue = filterValue.trim();
filterValue = filterValue.toLowerCase();
this.dataSource.filter = filterValue;
}
你应该使用 filterPredicate 属性 of MatTableDataSource
https://material.angular.io/components/table/api#MatTableDataSource
初始化后 this.dataSource(我假设“25915b8d-8b7c-41fe-b015-9b2e0a7d194b”是 T 上名为 "uuid" 的字段);
this.dataSource.filterPredicate = function(data: T, filterValue: string) {
return data.uuid
.trim()
.toLocaleLowerCase() === filterValue;
};
您应该将 T 替换为您在 MatTableDataSource<T>
上使用的任何类型
还请记住;
By default, each data object is converted to a string of its properties and returns true if the filter has at least one occurrence in that string.
这意味着,通过使用上面的 filterPredicate,您将仅根据数据的一个字段过滤数据源。如果您的用例需要过滤多个字段,那么您应该相应地采用您的 filterPredicate 函数。
如何过滤完全匹配?
如果我对 25915b8d-8b7c-41fe-b015-9b2e0a7d194b 进行过滤,那么两者都会
25915b8d-8b7c-41fe-b015-9b2e0a7d194b 1225915b8d-8b7c-41fe-b015-9b2e0a7d194b
被退回。我要完全匹配,不包含。
applyFilter(filterValue: string) {
filterValue = filterValue.trim();
filterValue = filterValue.toLowerCase();
this.dataSource.filter = filterValue;
}
你应该使用 filterPredicate 属性 of MatTableDataSource
https://material.angular.io/components/table/api#MatTableDataSource
初始化后 this.dataSource(我假设“25915b8d-8b7c-41fe-b015-9b2e0a7d194b”是 T 上名为 "uuid" 的字段);
this.dataSource.filterPredicate = function(data: T, filterValue: string) {
return data.uuid
.trim()
.toLocaleLowerCase() === filterValue;
};
您应该将 T 替换为您在 MatTableDataSource<T>
还请记住;
By default, each data object is converted to a string of its properties and returns true if the filter has at least one occurrence in that string.
这意味着,通过使用上面的 filterPredicate,您将仅根据数据的一个字段过滤数据源。如果您的用例需要过滤多个字段,那么您应该相应地采用您的 filterPredicate 函数。