【发布时间】:2021-03-03 04:11:28
【问题描述】:
我有一个顶级路由器,它延迟加载子路由功能模块,升级到 Angular v11.0.1 后已停止正常工作。
在 ng11 中退出路由器事件,加载功能模块,RouteConfigLoadStart 和 RouteConfigLoadEnd 都通过正确的子路由器配置触发,但未调用 RoutesRecognized。如果我再次点击链接(不是routerLink),所有事件都会正常触发并加载相应的组件。
澄清一下:这不仅仅是链接的问题。它也不适用于初始页面加载,除非我转到不同的路线(第一次也不会加载),然后返回原始路线
此设置在 Angular v10.2.3 中正常工作(即单击并在初始加载时)
AppRoutingModule:
const routes: Routes = [
{path: '', redirectTo: '/dashboard', pathMatch: 'full'},
{path: 'browse', loadChildren: () => import('./browse/browse.module').then(m => m.BrowseModule)},
{path: 'dashboard', loadChildren: () => import('./dashboard/dashboard.module').then(m => m.DashboardModule)},
{path: '**', redirectTo: '/dashboard'}
];
@NgModule({
imports: [RouterModule.forRoot(routes, {useHash: true})],
exports: [RouterModule]
})
export class AppRoutingModule { }
仪表板路由模块
const routes: Routes = [
{path: '', component: DashboardComponent},
{path: ':id', component: DashboardComponent}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class DashboardRoutingModule { }
应用模块
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [{provide: APP_BASE_HREF, useValue: ''}],
bootstrap: [AppComponent]
})
export class AppModule { }
AppComponent 模板
<router-outlet></router-outlet>
我很乐意提供任何可能有助于深入了解此问题的其他详细信息。提前致谢。
【问题讨论】:
-
您介意为此创建一个堆栈闪电战吗?
-
你能详细说明你为什么不使用
routerLink吗?我不确定角度路由器实际上是否支持使用标准链接。 -
请提供相同的stackbitz。
-
@Qortex 我必须从基于 JSF 的旧应用程序链接到应用程序。应该支持使用标准链接,它们在 ng10 中工作。如果您刷新页面,它在初始加载时也不起作用。
-
@AakashGarg 不幸的是,我还无法让 SB 来复制该问题。我仍在尝试,以便能够对问题进行逆向工程。如果我可以在 SB 中复制它,我会将它添加到问题中。
标签: angular angular-routing angular-router angular-router-events angular11