好的,为了简单起见,我假设我有3个组件:父组件和另外两个组件(子A和子B)。
我希望父组件的网址前缀为' / parent'并包含其他两个组件之一,默认情况下为组件A,否则为B,他们的网址前缀为' childA'和' childB' 。此外,我不希望父组件本身可见,它必须具有childA或childB可查看和如果' / parent'被称为自动重新路由到' / parent / childA'。
到目前为止,这是我在路由器中所拥有的并且无法正常工作当我路由到' / parent'时,我在控制台上收到无效路径错误当我路由到' / parent / child [AorB]'我的浏览器永远落后,永远不会路由:
{
path: 'parent', component: ParentComponent,
children : [
{
path: '',
redirectTo: 'childA'
},
{
path: 'childA',
component: ChildAComponent
}, {
path: 'childB',
component: childBComponent
}
]
}
父母的模板只是一个路由器插座,如下所示:
<router-outlet></router-outlet>
答案 0 :(得分:0)
需要像这样添加 pathMatch:&#39;完整&#39; :
{
path: 'parent', component: ParentComponent,
children : [
{
path: '',
redirectTo: 'childA',
pathMatch: 'full' //<--------- Need this here
},
{
path: 'childA',
component: ChildAComponent
}, {
path: 'childB',
component: childBComponent
}
]
}
答案 1 :(得分:0)
确保您在html中定义了2个 router-outlet ,这样angular就会知道哪个是父级,哪个是子级。
链接的代码如何? 对于孩子,请使用“ ./”,如下所示:
[routerLink]="['./childA']"
对于父母,您可以直接去...
[routerLink]="['parent']"