【发布时间】:2018-08-20 12:37:38
【问题描述】:
我正在将我的 Angular 4 应用程序转换为 Angular 6。但是,我在进行与路由相关的更改时遇到了问题。
现在,当我运行我的应用程序时,会加载 Home 组件,但没有加载路径为空的子组件 ContentsComponent。
我的应用程序中的路由定义如下:
app.routing.module.ts
const routes: Routes = [
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'support', component: SupportComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
home.routing.module.ts
const routes: Routes = [
{
path: 'home', component: HomeComponent,
children: [
{ path: '', component: ContentsComponent }, //<-- This component is not loaded
{ path: '**', redirectTo: 'home' }
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class HomeRoutingModule { }
home.module.ts
@NgModule({
imports: [
HomeRoutingModule
],
exports: [],
declarations: [ HomeComponent, ContentsComponent ],
providers: [],
})
export class HomeModule { }
app.module.ts
@NgModule({
imports: [
BrowserModule,
AppRoutingModule,
ReactiveFormsModule,
HomeModule
],
declarations: [AppComponent],
bootstrap: [AppComponent],
providers: [
{ provide: LocationStrategy, useClass: HashLocationStrategy }
]
})
export class AppModule { }
home.component.html
<router-outlet></router-outlet>
编辑:请注意,我不想在/home url 部分之后显示任何内容。
【问题讨论】:
-
您的代码在stackblitz.com/edit/…中运行良好