【发布时间】:2019-01-01 05:51:50
【问题描述】:
您好,我正在尝试使用子路由,但它没有按预期工作。
我的 angular 5 结构:
在这种情况下,顶部导航包含加载子模块的链接,子导航包含更新子模块内容的链接。
应用模块(和应用组件)包含一个顶部导航栏,用于导航到不同的子模块,应用组件模板可能如下所示
<top-navbar></top-navbar>
<router-outlet></router-outlet>
但这就是复杂性。我需要我的子模块具有类似的布局,带有二级导航栏和它们自己的路由器出口来加载它们自己的组件。
<sub-navbar></sub-navbar>
<router-outlet name='sub'></router-outlet>
我的 app.module.ts
RouterModule.forRoot([
{
path: 'career', component: CareerComponent,
children: [
{ path: 'roles', component: rolesComponent, outlet: 'sub' }
]
}
])
我的 HTML 文件,我在导航按钮上使用以下格式:
[routerLink]="[{ outlets: { sub: ['roles'] } }]"
我也尝试了以下方法(这没有任何作用,我点击角色按钮并没有任何反应):
[routerLink]="['/roles']"
在顶部菜单上,我从导航中单击职业。 现在我的网址显示为 mywebsite.com/career
现在我有一个带有侧边菜单的职业页面,其中一个按钮是角色。这应该会改变页面的部分视图。 组件加载正确,问题是url格式错误。
预期网址:
mywebsite.com/career/roles
如何显示(错误):
mywebsite.com/career/(sub:roles)
【问题讨论】:
-
在您的配置中没有太多深入,这似乎没有错。当您使用命名插座时,这就是您访问它的方式。你应该阅读更多关于它的信息angular.io/guide/…
-
如何更改我的配置以使其显示为职业/角色?
标签: angular typescript