路径导航后,Angular2视图不会滚动到顶部

Yuv*_*als 1 angular2-routing angular

我使用一个简单的链接导航到另一个页面,使用HashLocationStrategy:

<a href="/#/mypage">My Page</a></div>
Run Code Online (Sandbox Code Playgroud)

在点击上面的链接之后,mypage正在加载,但是由于我向下滚动上一页,它被加载到页面的中间(上一页的相同滚动位置).

我有一个解决方法,但为什么会发生这种情况?

Pie*_*Duc 10

发生这种情况是因为没有实际的页面刷新.目前还没有关于如何在不使用变通方法的情况下触发此操作的实现.我想主要的问题是你可以router-outlet在同一个屏幕上有多个,并且在它不应该向上滚动的情况下.

在我的内部,我AppComponent使用此解决方法.你可能使用相同的:

constructor(private _router: Router) {}

ngOnInit() {
  this._router.events.subscribe((event: NavigationEnd) => {
    if(event instanceof NavigationEnd) {
      window.scrollTo(0, 0);
    }
  })
}
Run Code Online (Sandbox Code Playgroud)