【发布时间】:2017-02-14 13:25:36
【问题描述】:
经过几天的搜索,我无法确定使用相对路径使命名路由器出口中的组件影响主要路由组件的正确方法。
- 我读过Routing & Navigation
- 我读过RouterLink
- 我读过Dreams Do Come True!...
- 我已经搜索了整个 StackOverflow
路线:
let routes: Routes = [
{ path: '', redirectTo: 'auth/portfolio/home/1', pathMatch: 'full'},
{
path: 'auth/:module',
component: AuthComponent,
children: [
{ path: 'home/:value', component: HomeComponent},
{ path: 'home2/:value', component: Home2Component},
{ path: 'details', component: DetailComponent, outlet: 'aux'},
{ path: 'details2', component: Detail2Component, outlet: 'aux'}
]
}
];
这是我的Plunker 显示问题。
- AuthComponent 的链接工作正常。他们可以更改子组件或命名路由器出口的组件,就像文档中所说的那样。
- Detail 或 Home 组件正在与我作斗争。通过一些实验,我已经能够获得工作的绝对路径(Home2、Detail2),但这不是我们应用程序的解决方案。
- 我知道我可以使用 router.navigateByUrl(...),但是如果不进行字符串匹配/正则表达式/其他操作,这仍然不是相对的
问题: 让子路由组件影响命名路由插座中的兄弟组件(反之亦然)的正确语法是什么?如果可能的话,你能用一个工作的 plunker 来回应吗?
更新 1: 作为一个短期的解决方法,我创建了一个 AuthRouterService,它为 AuthComponent 中的子组件执行路由。 AuthRouterService 在 AuthComponent 的 Providers 数组中,所以所有的孩子都得到一个服务。我把这个问题留在这里,以防有人找到正确的语法来否定这种hackaround的需要。如果我没有收到回复,我会在大约一周内用这个 hackaround 将它标记为完成。
请参阅此处的Plunker,了解 AuthRoutingService 以及我如何将其用作破解方法。
谢谢
【问题讨论】:
标签: angular2-routing