Angular 子路由不工作
Angular child route not working
我试图让路由和子路由在一个简单的配置中工作,但我似乎无法让它工作。
路由:
import { Routes, RouterModule } from '@angular/router';
import { NgModule } from '@angular/core';
import { BookingoverviewComponent } from './bookingoverview/bookingoverview.component';
import { BookingDetailsComponent } from './booking-details/booking-details.component';
const appRoutes: Routes = [
{ path: 'bookingoverview', component: BookingoverviewComponent,
children: [
{ path: 'bookingDetails', component: BookingDetailsComponent }
]},
{ path: 'bookingDetails', component: BookingDetailsComponent },
];
@NgModule({
imports: [
RouterModule.forRoot(appRoutes, { enableTracing: true })
],
exports: [
RouterModule
]
})
export class AppRoutingModule {
}
以及链接:
<a routerLink="/bookingoverview">Bookingoverview</a>
<a [routerLink]="['/bookingoverview', 'bookingDetails']">Details-component</a>
<a [routerLink]="['bookingDetails']">Details-component</a>
localhost:4200/bookingoverview - 有效
localhost:4200/bookingDetails - 有效
localhost:4200/bookingoverview/bookingDetails - 不起作用!仅显示预订概览。
我做错了什么?
谢谢!
您需要在 bookingoverview 组件中添加:
<router-outlet></router-outlet>
确保您有两个路由器插座。
App 组件需要 <router-outlet>
来显示主要路线。
如果组件有子路由,该组件的模板也需要 <router-outlet>
。然后子路由显示在该路由器出口内。
如果你想在同一个路由器出口,不要使用子路由:
const appRoutes: Routes = [
{ path: 'bookingoverview', component: BookingoverviewComponent,
{ path: 'bookingoverview/bookingDetails', component: BookingDetailsComponent },
{ path: 'bookingDetails', component: BookingDetailsComponent },
];
我试图让路由和子路由在一个简单的配置中工作,但我似乎无法让它工作。
路由:
import { Routes, RouterModule } from '@angular/router';
import { NgModule } from '@angular/core';
import { BookingoverviewComponent } from './bookingoverview/bookingoverview.component';
import { BookingDetailsComponent } from './booking-details/booking-details.component';
const appRoutes: Routes = [
{ path: 'bookingoverview', component: BookingoverviewComponent,
children: [
{ path: 'bookingDetails', component: BookingDetailsComponent }
]},
{ path: 'bookingDetails', component: BookingDetailsComponent },
];
@NgModule({
imports: [
RouterModule.forRoot(appRoutes, { enableTracing: true })
],
exports: [
RouterModule
]
})
export class AppRoutingModule {
}
以及链接:
<a routerLink="/bookingoverview">Bookingoverview</a>
<a [routerLink]="['/bookingoverview', 'bookingDetails']">Details-component</a>
<a [routerLink]="['bookingDetails']">Details-component</a>
localhost:4200/bookingoverview - 有效
localhost:4200/bookingDetails - 有效
localhost:4200/bookingoverview/bookingDetails - 不起作用!仅显示预订概览。
我做错了什么?
谢谢!
您需要在 bookingoverview 组件中添加:
<router-outlet></router-outlet>
确保您有两个路由器插座。
App 组件需要 <router-outlet>
来显示主要路线。
如果组件有子路由,该组件的模板也需要 <router-outlet>
。然后子路由显示在该路由器出口内。
如果你想在同一个路由器出口,不要使用子路由:
const appRoutes: Routes = [
{ path: 'bookingoverview', component: BookingoverviewComponent,
{ path: 'bookingoverview/bookingDetails', component: BookingDetailsComponent },
{ path: 'bookingDetails', component: BookingDetailsComponent },
];