我想使用 aComponent
作为模板,然后在其中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>
只要我有一个遵循模式的网址,这就可以正常工作/**/*
;
我的问题是我想对没有子 url 的页面使用这种模板逻辑,例如/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
,就好像它是一个子 url,而不是手动执行它。
但是,重要的是,并非每条/**
路线都获得模板,因此,例如/contact
,有自己的模板。
是否可以?
您可以使用将分配的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
不使用 component:TemplateComponent/main
将分配TemplateComponent
模板之后的任何路由本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句