Avatar ·

Angular 2+ 中路由切换时页面滚动到顶部

大家好!我是一名 Angular(版本 15)的初学者开发者。遇到了一个问题:通过 Router 切换页面时(在模板中使用 `routerLink`,在组件中使用 `this.router.navigate()`),页面不会滚动到顶部。如果我位于一个长页面的底部并切换到另一个路由,用户会看到新页面的中间部分,而不是开头。这非常烦人,尤其是在移动设备上。 我尝试在 RouterModule 的配置中添加 `scrollPositionRestoration: 'top'`,但这并没有在所有情况下生效。我还尝试在 AppComponent 中订阅 Router 事件并调用 `window.scrollTo(0,0)`,但滚动发生在新组件完全加载之前,视觉上看起来很卡顿。另外,我还注意到,如果使用带有片段(#section)的 `routerLink`,滚动功能会完全失效。 以下是我当前代码的示例: ```typescript // app-routing.module.ts(片段) const routes: Routes = [ { path: '', com