这样做的总体方法是在您想要的路线上进行模式匹配,并为每个出口提供空的子路线。
格式(带括号、花括号和缩进)一目了然有点难以阅读,所以我将在这里隔离每条路线并解释一下......
假设您在/page1
:
const pageOneRoutes = {
path: 'page1',
};
该路径有两个子路由(每个出口都有自己的子路由)。这两个子路径都是“空”路径,因为您希望自己的子路径匹配page1
:
const pageOneRoutes = {
path: 'page1',
children: [
{ path: '', outlet: 'menu', component: Menu1Component },
{ path: '', outlet: 'main', component: Main1Component }
]
};
/page2
然后,您只需对要加载的其他组件重复此过程。
const pageTwoRoutes = {
path: 'page2',
children: [
{ path: '', outlet: 'menu', component: Menu2Component },
{ path: '', outlet: 'main', component: Main2Component }
]
};
有关更多信息,请查看 Angular 路由教程的这一部分,它使用这种方法在子路由中进行模式匹配:https ://angular.io/guide/router#child-route-configuration 。
整个事情可能看起来像这样:
const ROUTES: Routes = [
{
outlet: 'primary',
path: '',
children: [
{
path: 'page1',
children: [
{
path: '',
outlet: 'menu',
component: Menu1Component
},
{
path: '',
outlet: 'main',
component: Main1Component
}
},
{
path: 'page2',
children: [
{
path: '',
outlet: 'menu',
component: Menu2Component
},
{
path: '',
outlet: 'main',
component: Main2Component
}
]
}
]
]
}
]