Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Angular 2记住滚动位置?_Angular_Scroll_Angular2 Router - Fatal编程技术网

如何让Angular 2记住滚动位置?

如何让Angular 2记住滚动位置?,angular,scroll,angular2-router,Angular,Scroll,Angular2 Router,我在第1页,我滚动到页面的一半,然后单击一个链接,通过角路由器将我带到第2页。当我按下“后退”按钮时,我希望第1页向下滚动一半,就像我离开该页之前一样 最简单的方法是什么?保存到localStorage在ngondestory()中的滚动位置,并在ngOnInit()中还原它。也许您可以创建一个服务,在其中写入组件ngDestroy上的最后一个滚动位置和“pageId”,下次在ngInit上检查是否有滚动位置。听起来是一个合理的解决方案。我想知道Angular是否有一种“开箱即用”的方式通过一些

我在第1页,我滚动到页面的一半,然后单击一个链接,通过角路由器将我带到第2页。当我按下“后退”按钮时,我希望第1页向下滚动一半,就像我离开该页之前一样


最简单的方法是什么?

保存到
localStorage
ngondestory()
中的滚动位置,并在
ngOnInit()中还原它。

也许您可以创建一个服务,在其中写入组件ngDestroy上的最后一个滚动位置和“pageId”,下次在ngInit上检查是否有滚动位置。听起来是一个合理的解决方案。我想知道Angular是否有一种“开箱即用”的方式通过一些路由器配置来实现这一点,因为这是一种默认的浏览器行为,我们在使用路由器时会丢失它。有人能解释为什么这会被否决吗?是因为答案过于简明扼要,几乎无济于事,还是因为这是解决问题的糟糕方法?我正试图解决一个类似的问题,我真的希望选民们能留下评论……我也做了类似的事情。我没有将它保存在
localStorage
中,而是编写了自己的服务。