Храните данные в Angular, чтобы их запомнили, когда пользователь в следующий раз окажется на той же странице - PullRequest
0 голосов
/ 15 ноября 2018

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

У меня есть опыт работы в приложении без SPA, в котором используется та же библиотека сетки, что и в моем приложении Angular (Datatables.net). Я знаю, как получить, установить и систематизировать данные, которые мне нужны. В приложении без SPA я просто сохранил данные, используя window.location.replace, в хеш-часть URL.

Мой вопрос: как лучше всего подойти к этому в современном приложении Angular 6? Возможные ответы включают в себя:

Очевидно, что есть много вариантов. Какой лучший подход?

Я нашел много похожих вопросов, задаваемых по SO, но я не смог найти ни одного, где ответы не были бы особенно специфичными для варианта использования.

Один из факторов, влияющих на то, какие ответы работают / не работают, заключается в том, что я думаю, что я захочу, чтобы такое поведение происходило только в том случае, если пользователи щелкают назад, но не в том случае, если они повторно посещают тот же экран с помощью главной навигации. Так что, если они нажимают «Заказы» в главном меню, он должен по умолчанию использовать обычный порядок, без фильтров и быть прокручен до самого верха. Например, попытка использовать localStorage кажется простой, за исключением того, что я понятия не имею, как определить, нажал ли пользователь главную навигационную панель или нажал кнопку Назад.

...