Мы создаем веб-приложение, в котором пользователь должен нажимать на списки, чтобы перейти к определенному виду редактирования.Например, на целевой странице пользователь выбирает client , затем agent и затем попадает в представление редактирования этого агента.URL в этом случае будет содержать идентификаторы: /client/4/agent/7/edit
. @ ngrx / router-store используется для обработки изменений URL-адреса, поэтому при прямом доступе к вышеуказанному URL-адресу появляется окно редактирования, которое работает нормально.
Приложение также содержит крошку, показывает не идентификатор, а имена частей пути: Клиент: Компания> Агент: Почтовая служба> Редактировать при client = { id: 4, name: 'Company' }
и agent = { id: 7, name: 'Postal' }
.Мы обычно выбираем эти данные (client
и agent
) при щелчке по записи в списке корреспондентов.
Однако при прямом доступе к URL-адресу, подобному /client/4/agent/7/edit
, client
-объект не сохраняетсяэто содержит имя. Как я могу получить объект, который принадлежит маршруту, когда к URL-адресу обращаются напрямую с избыточным доступом? Я знаю, как я мог бы взломать это в приложение, но поток данных должен остатьсякрасиво и чисто reduxy .
Вещи, которые я рассмотрел:
- Проверка наличия
client
, agent
и т. д. в каждом компоненте и выборкаих, если они не существуют.Это может привести к большим накладным расходам, а также, кроме того, логика должна идти в селекторы, которые не могут инициировать действие. - Использование службы для проверки, если данные уже есть - если нет, загрузите их.Будет проверяться при каждом изменении URL-адреса и может также замедлять работу приложения.
- Запускать выборку данных при начальной загрузке приложения - где это сделать?
AppComponent
?
Я также открыт для реструктуризации всего приложения (используйте другую маршрутизацию, введите @ ngrx / Effects, переопределите API и т. Д.)