假设我们有以下路线:

{
    path: 'a',
    component: AComponent,
    children: [
        {
            path: '',
            component: BComponent
        },
        {
            path: '',
            component: CComponent,
            children: [
                { path: '', component: DComponent }
            ]
        }
    ]
}


并将以下URL粘贴到浏览器的地址栏中:

http://localhost:4200/a


问题


路由器如何知道要显示的组件?
是否会显示所有四个组件(A,B,C,D)?
每个组件将显示在哪里?


是否每个父组件始终都有自己的RouterOutlet,所以每个组件都沿parent / child / grand-child / etc路由。会显示在其父级的相应RouterOutlet中?
通常,当显示带有子路由的路由时,每个组件都显示在其父RouterOutlet中。但是,如果仅AComponent具有RouterOutlet,则BComponent,CComponent和DComponent会显示在哪里?

最佳答案

鉴于您没有遇到任何错误,路由器将为您提供找到的第一个匹配路由。在这种情况下为BComponent。路由器插座中只能显示一个组件(否则,您需要类似auxRoute之类的东西)。

如果CComponent具有类似“ c”的路由,则可以从路由http://localhost:4200/a/c访问它,那么您将在CComponents路由器出口中获得带有DComponent的CComponent。

希望能有所帮助。

关于javascript - Angular :子路线匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48158922/

10-10 11:43