这段代码的问题
{ path: '', redirectTo: 'Page1', pathMatch: 'full'},
{ path: 'Page1', component: Page1Component, outlet="contentOutlet"},
{ path: 'Page2', component: Page2Component, outlet="contentOutlet"}`
是您无法加载,例如Page1 到一个命名的出口,因为您必须将一个组件加载到未命名的router-outlet 中。此出口不得为空。如果您将根路径 '' 直接重定向到要加载到另一个出口的组件,则没有可用的未命名 router-outlet 的组件。
所以你应该为Pages 创建一个父组件,它总是像这样加载到未命名的router-outlet 中:
{ path: '', component: PagesComponent, pathMatch: 'full'},
{ path: 'Page1', component: Page1Component, outlet: 'contentOutlet'},
{ path: 'Page2', component: Page2Component, outlet: 'contentOutlet'}
您的网点留在AppComponent。
如果您想将Page1 加载到contentOutlet 中,您应该从AppComponent 的模板中这样做:
<a [routerLink]="['/', {outlets: {'contentOutlet': 'Page1' }}]" routerLinkActive="active" >Page1</a>
因此,现在路由器识别出在您的应用程序的/-root 路径中必须有一个名为contentOutlet 的出口。然后他将Page1-Component 加载到插座中。
这是更正后的 plunker:
https://plnkr.co/edit/MXi8p7rr15Bul1US9qbc?p=preview