фильтров?
по сути есть компоненты, которые в зависимости от выбора в селекте\инпуте стучат на API, получают данные и потом от них рендирится таблица
хочется все это вынести в шаред и сделать универсальную логику, вроде данных для этого хватает
- может есть примеры хороших реализаций?
- что на счет сохранения параметров в адресную строку?
- что на счет сохранения параметров в локальное хранилище?
- что если это сделать через интерсептор?
возможно есть еще идеи?
Фильтры выносишь и делаешь глупым компонентом. Наверх шлешь Output события, типа - выбрали ТО или ТО. А уже на каждой конкретной странице, делаешь в ответ на события от этого компонента то, что тебе нужно. Устанавливаешь параметры в адресную строку, сохраняешь чет в localstorage, отправляешь запросы и т.д.
но много таких фильтров и они разные по наполнению но идея в том, чтобы через конфиг прокунуть вью, на стороне компонента реализовать всю логику по сохранению\получению\обработке данных, а отдать только дату для обновления данных страницы нужно максимальное ре-использование, а не дублировать логику
Если хочешь логику внутри и чтобы было гибко, можешь придерживаться принципа инверсии зависимостей. В компонент инджектишь абстракцию и вызываешь ее методы: @Inject(FILTERS_PROCESSING_SERVICE) private readonly filtersProcessingService: IFiltersProcessingService. На каждой странице делаешь свой сервис с разной реализацией методов и провайдишь его на уровне страницы. Компонент получит нужный сервис и будет разная логика выполнятся в разных местах
Обсуждают сегодня