Angular 多布局路由不起作用
Angular Multiple layouts routing is not working
我有以下没有延迟加载的多布局结构。当导航到
https://localhost:44327/admin 或 /student 它没有显示任何内容。如果我使用空路径而不是 admin 和 student 然后导航到它的子 (/manageConcern) 路由,它会加载路由中指定的第一个 (AdminLayoutComponent) 布局。第二个 LayoutCompnent (/trainings) 未加载。看起来 app.component 中的路由器插座无法读取路径。知道我在这里缺少什么吗?这就是我想要实现的 https://stackblitz.com/edit/angular-multi-layout-example
路由-module.ts
RouterModule.forRoot([
{
path: 'admin',
component: AdminLayoutComponent,
children: [
{path: '', redirectTo: 'manageConcern', pathMatch: 'full'},
{path: 'manageConcern', component: MasterConcernComponent},
{path: 'createTraining', component: AdminComponent},
]
},
{
path: 'student',
component: StudentLayoutComponent,
children: [
{path: '', redirectTo: 'trainings', pathMatch: 'full'},
{path: 'trainings', component: TrainingsComponent},
]
}
]),
AdminLayoutComponent.html
<app-header></app-header>
<app-menu [menuItems]="menuItems"></app-menu>
<div class="app-body-content m-5 p-4">
<router-outlet></router-outlet>
</div>
StudentLayoutComponent.html
<app-menu [menuItems]="menuItems"></app-menu>
<div class="app-body-content m-5 p-4">
<router-outlet></router-outlet>
</div>
app.component.html
<router-outlet></router-outlet>
我认为您需要将主路由添加到路由数组。
{
小路: '',
组件:AnyComponent,
}
由于 app.component.ts 不是路由组件,因此它对活动路由一无所知。如果您想在 app.component.ts 中使用主路由器插座,则必须在 index.html 中添加 <base href="/">
。
我有以下没有延迟加载的多布局结构。当导航到 https://localhost:44327/admin 或 /student 它没有显示任何内容。如果我使用空路径而不是 admin 和 student 然后导航到它的子 (/manageConcern) 路由,它会加载路由中指定的第一个 (AdminLayoutComponent) 布局。第二个 LayoutCompnent (/trainings) 未加载。看起来 app.component 中的路由器插座无法读取路径。知道我在这里缺少什么吗?这就是我想要实现的 https://stackblitz.com/edit/angular-multi-layout-example
路由-module.ts
RouterModule.forRoot([
{
path: 'admin',
component: AdminLayoutComponent,
children: [
{path: '', redirectTo: 'manageConcern', pathMatch: 'full'},
{path: 'manageConcern', component: MasterConcernComponent},
{path: 'createTraining', component: AdminComponent},
]
},
{
path: 'student',
component: StudentLayoutComponent,
children: [
{path: '', redirectTo: 'trainings', pathMatch: 'full'},
{path: 'trainings', component: TrainingsComponent},
]
}
]),
AdminLayoutComponent.html
<app-header></app-header>
<app-menu [menuItems]="menuItems"></app-menu>
<div class="app-body-content m-5 p-4">
<router-outlet></router-outlet>
</div>
StudentLayoutComponent.html
<app-menu [menuItems]="menuItems"></app-menu>
<div class="app-body-content m-5 p-4">
<router-outlet></router-outlet>
</div>
app.component.html
<router-outlet></router-outlet>
我认为您需要将主路由添加到路由数组。 { 小路: '', 组件:AnyComponent, }
由于 app.component.ts 不是路由组件,因此它对活动路由一无所知。如果您想在 app.component.ts 中使用主路由器插座,则必须在 index.html 中添加 <base href="/">
。