Я нахожусь на странице поиска, где отображаются некоторые пользователи, есть панель поиска с некоторыми фильтрами, и эти фильтры будут использоваться для выполнения запроса GET
к серверу с HttpClient.
То, что я не могу найти, это лучший способ сохранить эти параметры в строке запроса (чтобы иметь возможность добавить в закладки поиск), и даже если страница обновится, они будут сохранены в URL.
То, что я делаю сейчас:
- Выполнить поисковый запрос
this.router.navigate([], { queryParams: { search: searchParams }});
где searchParams - это строка, содержащая все параметры, используемые для поиска.
- Хранение этих searchParams каждый раз, когда они обновляются в Магазине (избыточный)
- На
ngOnInit
компонента я использую route:ActivatedRoute
для чтения параметров из снимка маршрута, подобного этому route.snapshot.queryParams.search
, чтобы получить, если есть searchParams, и использовать их для выполнения новый вызов при перезагрузке страницы.
Что происходит, когда я перезагружаю страницу после применения некоторых фильтров, страница перезагружается правильно, считывая параметры из URL, но она не может установить их снова в queryString, поэтому, если я перезагружу снова, к странице не будут применены фильтры.
С этим решением, которое я описал выше, я довольно близок к «решению», но я не думаю, что это лучший способ сделать это, должен быть более разумный способ сделать это.