我有一个Angular 7应用,该应用具有许多显示记录网格的屏幕(组件)。我想设置这些屏幕,以便当用户单击记录(访问另一个屏幕)然后单击“上一步”时,他们将看到相同的过滤器,排序顺序和滚动位置。
我有在非SPA应用程序中执行此操作的经验,该应用程序使用的是我在Angular应用程序(Datatables.net)中使用的相同网格库。我知道如何获取,设置和分类所需的数据。在非SPA应用程序中,我只是使用window.location.replace将数据持久保存到URL的哈希部分中。
我的问题是:在现代的Angular 6应用中解决此问题的最佳方法是什么?可能的答案似乎包括:
显然,这是很多选择。最好的方法是什么?
我在SO上发现了很多类似的问题,但是我找不到一个答案并非完全针对用例的问题。
将影响哪些答案有效/无效的一个因素是,我认为仅当用户单击时我才需要这种行为,但如果用户通过主导航重新访问同一屏幕则不需要。因此,如果他们在主导航栏中单击“订单”,则应默认为正常订单,没有过滤条件,并滚动到顶部。例如,尝试使用localStorage似乎很容易,除了我不知道如何知道用户是单击主导航还是单击返回。