Relax MatTableDataSource’s filter to be of type “{}”
Feature Description
Relax MatTableDataSource.filter to accept {}. Right now, it is restricted to string.
This would allow much easier custom filtering on multiple dimensions.
Use Case
When the filter is “only” a string, it makes it very difficult to “structurally” filter a table on multiple dimensions, even when customizing filterPredicate . Some recommendations on internet include:
- passing a JSon object, and parsing the JSon
filterPredicate, for each and every row: http://nataliesmith.ca/blog/angular-material-filter-table - everything in this bug thread: https://github.com/angular/components/issues/6178
While it works, it’s also a gratuitous workaround: It turns out that at no point does MatTableDataSource actually require filter to be a string: Whatever gets passed to filter just gets piped “as-is” to filterPredicate.
Here is a simple fork of “Table with filtering” that filters on different columns individually, where all I did was pass my complex object, while not respecting : https://stackblitz.com/edit/table-filtering-multiple-filters-example?file=app/table-filtering-example.html https://table-filtering-multiple-filters-example.stackblitz.io/
Caveats
It would still be up to the caller to make sure that their filter object is homogeneous with their filterPredicate object.
Any chance we could prioritize this? It’s an absurdly simple change that would solve a problem that just keeps coming up and up and up:
- https://github.com/angular/components/issues/13465
- https://github.com/angular/components/issues/10178
- https://github.com/angular/components/issues/9321
- https://github.com/angular/components/issues/6178
Any update on this issue?
Just a heads up that we kicked off a community voting process for your feature request. There are 20 days until the voting process ends.
Find more details about Angular's feature request process in our documentation.
Thank you for submitting your feature request! Looks like during the polling process it didn't collect a sufficient number of votes to move to the next stage.
We want to keep Angular rich and ergonomic and at the same time be mindful about its scope and learning journey. If you think your request could live outside Angular's scope, we'd encourage you to collaborate with the community on publishing it as an open source package.
You can find more details about the feature request process in our documentation.
this is literally a bug. this doesn't need votes! when you have FormGroup, valueChanges are in object type. If you can't even handle your own feature, that is bug! please fix it already!