gpt4 book ai didi

angular - 如何使用 Angular 5 将两个路由器 socket 用于同一路径

转载 作者:太空狗 更新时间:2023-10-29 18:24:17 25 4
gpt4 key购买 nike

我有以下 AppComponent 模板:

<div>
<div>
<router-outlet name="menu"></router-outlet>
</div>
<div>
<router-outlet name="main"></router-outlet>
</div>
</div>

我想在两种情况下使用这个模板:

  • 当我导航到 /page1 时,我希望 menu 导出包含 Menu1Componentmain 导出包含Main1Component
  • 当我导航到 /page2 时,我希望 menu 导出包含 Menu2Componentmain 导出包含Main2Component

我不明白 children 和 named outlets 是如何运作的。我在模块导入中的路由应该是什么?

我使用 Angular 5。

最佳答案

总体方法是在您想要的路线上进行模式匹配,并为每个导出提供空的子路线。

格式(带方括号、花括号和缩进)乍一看有点棘手,所以我将在这里隔离每条路线并稍微解释一下......

假设您在 /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
}
]
}
]
]
}
]

关于angular - 如何使用 Angular 5 将两个路由器 socket 用于同一路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48831583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com