【发布时间】:2020-03-16 04:36:33
【问题描述】:
我现在有一个简单的 Angular 8.3 应用程序,但路由不起作用。
当我转到 /logs 时,我没有任何错误,但屏幕上没有显示任何内容。
当我转到 /logs/detailed/1036 时,控制台出现错误:“错误:无法匹配任何路由。URL 段:'logs/detailed/1036'”
我尝试了很多在互联网上找到的不同解决方案,但没有任何效果。我错过了什么?
这是我的应用程序的一个简单树:
/app
- app.module.ts
- app-routing.module.ts
- app.component.html
/log-page
- log-page.module.ts
- log-page-routing.module.ts
- log-page.component.html
app.module.ts
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
HttpClientModule,
AppRoutingModule,
SharedModule,
LogPageModule,
ToastrModule.forRoot(),
TabMenuModule
],
providers: [],
bootstrap: [
AppComponent,
]
})
export class AppModule { }
app-routing.module.ts
const routes: Routes = [
{ path: '', redirectTo: 'logs', pathMatch: 'full'},
{ path: 'logs', loadChildren: () => import(`./log-page/log-page.module`).then(m => m.LogPageModule)},
];
@NgModule({
imports: [RouterModule.forRoot(routes, {enableTracing: true})],
exports: [RouterModule]
})
export class AppRoutingModule { }
app.component.html
<app-header></app-header>
<p-tabMenu [model]="navigationItems"></p-tabMenu>
<router-outlet></router-outlet>
log-page.module.ts
@NgModule({
imports: [
CommonModule,
SpinnerModule,
MenuModule,
FormsModule,
ButtonModule,
TableModule,
InputTextModule,
SharedModule,
LogPageRoutingModule
],
declarations: [
LogPageComponent,
FilterBarComponent,
LogTableComponent,
DetailedLogComponent,
ErrorStatusComponent
],
providers: [
FilterSettingsService
]
})
export class LogPageModule { }
log-page-routing.module.ts
const routes: Routes = [
{
path: '', outlet: 'log-page', component: LogTableComponent, children: [
{
path: 'detailed/:logId', outlet: 'log-page', component: DetailedLogComponent
}, {
path: '**', redirectTo: '', pathMatch: 'full'
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class LogPageRoutingModule { }
log-page.component.ts
<div class="p-grid ">
<div class="p-col-fixed" style="width: 200px;">
<app-error-status></app-error-status>
</div>
<div class="p-col">
<router-outlet name="log-page"></router-outlet>
</div>
</div>
【问题讨论】:
-
第一个 router-outlet 在 app.component.html 中。第二个是log-page.component.ts
标签: angular typescript routes