点击链接后,我想导航到不同页面/组件的一部分。即使尝试多种方法,我也无法实现这一目标:
链接:
<a routerLink="/main/dash" fragment="dir">View</a>
目标html /模板:
<!-- Other elements -->
<app-dir id="dir"></app-dir>
路由器配置:
{
path: 'main',
component: LayoutComponent,
children: [{
path: 'dash',
loadChildren: () => import('src/app/features/dash/dash.module').then(m => m.DashModule),
canActivate: [AuthGuard]
}]
// Other code
}
// Other code
imports: [RouterModule.forRoot(appRoutes, { useHash: true, anchorScrolling: 'enabled', onSameUrlNavigation: 'reload' })],
在单击“查看”链接时,系统导航到/main/dash
路径/页面/组件,但是在第一行中不会滚动到该片段。进入首页后,当我单击相同的导航链接(位于标题中的“视图”)时,它将滚动到该片段。
即当我已经在同一个页面/组件上时,AnchorScrolling可以工作,但是如果源是不同的页面/组件,则不会。
我还尝试使用(click)
和this.router.navigate()
而不是使用routerLink-但结果是相同的。
我确实使用HashLocationStrategy
。
任何帮助将不胜感激。
谢谢!
更新:
深入研究之后,Fragment Routing after Page Load Angular是我面临的确切问题。似乎还没有解决方案?https://github.com/angular/angular/issues/30139