169 похожих чатов

Здравствуйте, подскажите, пожалуйста, как лучше реализовать хранение состояния в урле-приложения?

Есть каталог с товарами и в нем есть фильтры, сортировка, управление кол-вом товара на странице, пагинация, ну и прочее стандртные вещи, типо фильтров по цене. И надо сделать так, чтобы состояние приложения можно было востановить, скопировав ссылку и передав ее.
Я подумал, что верный путь - при взаимодействии, например, с фильтрами надо изначально видоизменить урл ( queryParams ), а потом уже быть подписанным на и изменение урла, и с фильтрами получается довольно удобно, ведь при смене урла с /catalog/412 на catalog/413 все queryParams уничтожатся строка filters самоустранится и это будет корректно и то же самое с параметром page, price, но что делать с такими вещами, как размер страницы ( кол-во товаров на странице ), сортировка, которые должны в принципе быть константами. В общем, пока не сильно изящно выходит и может есть какой-то стандартный флоу для всего этого действа? Ну, пока подумал, просто это в некие константы вынести и при каждом изменении роута просто дописывать эти параметры - не самое красивое решение

2 ответов

6 просмотров

Храни состояние в сервисе в виде обсервейблов, подписывайся на их изменение и с delay в ~10 мс пиши в роут в любом виде, который ты сможешь распарсить. А вот при загрузке страницы считывай состояние и загоняй его в сервис до всех подписок

https://stackblitz.com/edit/tplk-angular-sync-input-and-query-params-search?file=src%2Fapp%2Fapp.module.ts что-то в этом роде?

Похожие вопросы

Обсуждают сегодня

type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
45
А чем вам питонисты не угодили?😂
.
79
Можно ли загрузить скрипт py в бота чтобы он работал по нему? как это сделать?
huskadam #RCC Фанат? @hitlerpvp
13
Всем здравствуйте! Я хотел узнать сколько стоит средняя месячная зарплата у Electron js разработчиков? Мне очень это важно и нужно, плиз помогите узнать эту инфу! Для Джунио...
U.K.
10
А дин типизация это хорошо или плохо?
Alexey
12
Исходники плюс документация? Вы гоните)) демок хватит всем
zamtmn
11
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
76
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Hello. Could you please help me with finding all coordinates within a radius using a spatial index, given that I have a table with coordinates? SET @lng = 37.57925; SET @lat ...
Rinchin G
7
Карта сайта