Я построил @matheo/datasource
с учетом такого рода сложности, поэтому я хотел иметь возможность инициировать изменения в источнике данных из нескольких источников (потоков изменений фильтров), создавать запрос в зависимости от состояния фильтров и получать соответствующие данные, с легкостью.
Я выпустил эту библиотеку, чтобы сделать это, чтобы вы могли зарегистрировать столько входных потоков, сколько вам нужно, создать свой объект запроса, извлечь соответствующие данные с помощью службы базы данных и опубликовать результат в DataSource перед его отображением. в mat-table
.
Я построил демо и объяснил концепции здесь:
https://medium.com/@matheo/reactive-datasource-for-angular-1d869b0155f6
Прямо сейчас я со своего телефона, но если вам интересно, я могу помочь вам настроить ваши фильтры, если вы предоставите достаточно полный SlackBlitz, чтобы я мог вставить туда библиотеку:)
Удачного кодирования!