Какой шаблон использовать для случая, когда необходимо восстановить состояние приложения? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть несколько методов наблюдателей, которые возвращают данные с сервера.Этот результат применяется к фильтрам (HTML-форма с вводом данных).Эти фильтры связаны друг с другом.Это означает, что когда я выбираю один фильтр, он загружает другой.

Краткая иллюстрация:

Load data from server -> 
Assign response to variable and assign to filter -> 
Choose value from filter -> 
Fill others filters -> 
Load content on the page based selected filter

Пользователь может покинуть эту страницу и вернуться после.

Как предоставить заявление пользователястраницы с выбранными фильтрами и содержанием, избегая повторного запроса сервера?

1 Ответ

0 голосов
/ 23 октября 2018

Ваш компонент должен принимать вид @Input объекта, который может воссоздать состояние.Вы должны обновить этот объект и сохранить его в сервисоподобном классе, чтобы сохранить его время жизни на всех страницах.Концепция, которую вы пытаетесь решить, аналогична той, к которой обращается ngrx store.

Механизм хранения не сложен, то, что может быть в этом объекте, сложно.Если вы не хотите полагаться на кэшированные данные, то поток, который вы описали (т.е. зависимость от фильтров), должен быть сохранен для повторной инициализации компонента со свежими данными.Если вас не интересуют какие-то промежуточные обновления данных, тогда требуется хранение данных (и значений фильтра для согласованности представления), но вызовы API не будут выполняться.По моему мнению, вся магия должна быть вложена в onInit`.

РЕДАКТИРОВАТЬ

Как уже упоминалось в комментариях, рассмотрите шаблон дизайна сувениров от GoF как ссылку на ваш дизайн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...