我想使用Component
作为模板,然后我有router-outlet
注入子组件。
我知道我可以使用children
路由轻松完成,所以我按照以下方式执行此操作。
我的路线:
export const routes: Routes = [
{ path: 'main', component: TemplateComponent, children: childRoutes }
];
export const childRoutes: Routes = [
{ path: 'page-one', component: PageOneComponent }
];
TemplateComponent
:
<div class="some-awesome-template">
<router-outlet></router-outlet>
</div>
只要我有一个跟随模式/**/*
;
我的问题是我想将此模板逻辑用于没有子网址的网页,例如: /about
。
现在我这样做:
about
路线:
{ path: 'about', component: TemplateComponent }
然后TemplateComponent
看起来像这样:
<div class="some-awesome-template">
<span [ngSwitch]="variableWithCurrentUrl">
<span *ngSwitchCase="'about'">
<app-about></app-about>
</span>
<router-outlet *ngSwitchDefault></router-outlet>
</span>
</div>
这样做有效,但我想使用router-outlet
来注入AboutComponent
,就好像它是一个子网址,而不是手动执行它。
但重要的是,不是每个/**
路由都会获取模板,因此,例如/contact
,就有自己的模板。
有可能吗?
答案 0 :(得分:0)
您可以使用main
路由,其中TemplateComponent
将被分配,并且它将成为根路由的子代:
export const childRoutes: Routes = [
{ path: '',
component: AppComponent
children: [{
path: 'main',
component:TemplateComponent,
children: childRoutes
},
{
path: 'contract',
component: ContractComponent
}
]
}
];
<强> app.component.template:强>
<router-outlet></router-outlet>
/contract
不使用组件:TemplateComponent /main
之后的所有路线都将分配TemplateComponent
模板