当我从现有路线导航到新路线时,新页面不会在顶部打开。
我已经尝试了很多选择。 这是我找到的解决方案之一,但对我没有用。
export class AppComponent implements OnInit {
constructor(private router: Router, private changeDetect: ChangeDetectorRef) {
}
ngOnInit() {
this.router.events.subscribe((evt) => {
if (!(evt instanceof NavigationEnd)) {
return;
}
console.log(evt)
window.scrollTo(0, 0);
this.changeDetect.detectChanges();
});
}
}
有什么建议吗?
答案 0 :(得分:0)
您可以使用App.component.ts中的这一选项来修复它:
router.events.pairwise().subscribe((event: [NavigationEnd, NavigationEnd]) => {
if (event[0] instanceof NavigationEnd) {
window.scroll(0, 0);
}
});
选项2:
Angular 6.1支持
RouterModule.forRoot(routes, {scrollPositionRestoration: 'enabled'})
答案 1 :(得分:0)
我尝试了对我有用的其他解决方案
export class AppComponent implements OnInit {
constructor(private router: Router, private changeDetect: ChangeDetectorRef) {
}
ngOnInit() {
this.router.events.subscribe((evt) => {
if (!(evt instanceof NavigationEnd)) {
return;
}
// Change height:100% into auto
$('body').css('height', 'auto');
// Successfully scroll back to top
$('body').scrollTop(0);
// Remove javascript added styles
$('body').css('height', '');
this.changeDetect.detectChanges();
});
}
}