Angular2视图在路由导航后不会滚动到顶部。
Angular2视图在路由导航后不会滚动到顶部。
我正在使用一个简单的链接通过HashLocationStrategy导航到另一个页面:
我的页面
点击上面的链接后,mypage
被加载,但由于我在上一个页面向下滚动,它加载在页面中间(与上一个页面相同的滚动位置)。
我有一个解决方法,但为什么会发生这种情况呢?
Angular2视图在路由导航后没有滚动到顶部的问题出现的原因是因为没有实际的页面刷新。目前还没有一种不使用变通方法来触发这个问题的实现方式。我猜主要问题是你可以在同一个屏幕上有多个router-outlet
,并且在某些情况下它不应该滚动到顶部。
在我的AppComponent
中,我使用了以下解决方法。你可能也使用了相同的解决方法:
constructor(private _router: Router) {} ngOnInit() { this._router.events.subscribe((event: NavigationEnd) => { if(event instanceof NavigationEnd) { window.scrollTo(0, 0); } }) }
非常有效,谢谢!
我尝试了这个方法,但对我没有用,因为我的代码中有这个块,html,body { overflow-x: hidden; } 删除这个块将解决问题,但我不能删除它,因为它会影响其他组件。还有其他的解决方法吗?
最新的angular (6.1.0)已经支持恢复滚动。
但是我的项目现在是Angular v5。