如何让Angular 2记住滚动位置?
我在第1页,我滚动到页面的一半,然后单击一个链接,通过角路由器将我带到第2页。当我按下“后退”按钮时,我希望第1页向下滚动一半,就像我离开该页之前一样如何让Angular 2记住滚动位置?,angular,scroll,angular2-router,Angular,Scroll,Angular2 Router,我在第1页,我滚动到页面的一半,然后单击一个链接,通过角路由器将我带到第2页。当我按下“后退”按钮时,我希望第1页向下滚动一半,就像我离开该页之前一样 最简单的方法是什么?保存到localStorage在ngondestory()中的滚动位置,并在ngOnInit()中还原它。也许您可以创建一个服务,在其中写入组件ngDestroy上的最后一个滚动位置和“pageId”,下次在ngInit上检查是否有滚动位置。听起来是一个合理的解决方案。我想知道Angular是否有一种“开箱即用”的方式通过一些
最简单的方法是什么?保存到
localStorage
在ngondestory()
中的滚动位置,并在ngOnInit()中还原它。
也许您可以创建一个服务,在其中写入组件ngDestroy上的最后一个滚动位置和“pageId”,下次在ngInit上检查是否有滚动位置。听起来是一个合理的解决方案。我想知道Angular是否有一种“开箱即用”的方式通过一些路由器配置来实现这一点,因为这是一种默认的浏览器行为,我们在使用路由器时会丢失它。有人能解释为什么这会被否决吗?是因为答案过于简明扼要,几乎无济于事,还是因为这是解决问题的糟糕方法?我正试图解决一个类似的问题,我真的希望选民们能留下评论……我也做了类似的事情。我没有将它保存在localStorage
中,而是编写了自己的服务。