要在Angular 7中禁用子路由更改时的滚动到顶部,您可以使用以下解决方法:
import { Router, NavigationEnd } from '@angular/router';
constructor(private router: Router) {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
// 滚动到顶部
window.scrollTo(0, 0);
}
});
}
这样,每次子路由更改时,页面都会滚动到顶部。
完整的示例代码如下:
import { Component } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';
@Component({
selector: 'app-root',
template: `
`
})
export class AppComponent {
constructor(private router: Router) {
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
// 滚动到顶部
window.scrollTo(0, 0);
}
});
}
}
请注意,这种方法将在所有子路由更改时都触发滚动到顶部操作。如果您只希望在特定的子路由更改时执行此操作,可以在订阅事件的回调函数中添加条件语句来检查当前的路由路径。