Angular 2命名路由中相对路径的使用方法

3

经过数天的搜索,我无法确定如何使用相对路径使命名路由出口中的组件影响主路由组件。

  1. 我已阅读路由和导航
  2. 我已阅读RouterLink
  3. 我已阅读梦想成真!...
  4. 我已在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,展示了一些问题。

  1. AuthComponent的链接工作得很好。它们可以像文档中说的那样更改子组件或命名路由出口的组件。
  2. Detail或Home组件正在与我作斗争。通过一些实验,我已经能够让绝对路径(Home2、Detail2)工作,但这不是我们应用程序的解决方案。
  3. 我知道我可以使用router.navigateByUrl(...),但这仍然不是相对路径,需要进行字符串匹配/正则表达式/其他操作。

问题:获取子路由组件以影响命名路由出口中的同级组件,反之亦然的正确语法是什么?如果可能,请提供一个可工作的plunker。

更新1: 作为一种短期解决方案,我创建了一个AuthRouterService,在AuthComponent中执行子组件的路由。 AuthRouterService在AuthComponent的Providers数组中,因此所有子组件都可以获得一个服务。 如果有人找到可以避免这种hackaround的正确语法,请在此处保留此问题。 如果一周内没有回复,我将使用此hackaround标记它已完成。
请参见Plunker,了解AuthRoutingService以及我如何使用它作为hackaround。
谢谢
1个回答

0

作为一个短期的解决方案,我创建了一个AuthRouterService,在AuthComponent中执行子组件的路由。 AuthRouterService在AuthComponent的Providers数组中,因此所有子组件都可以获得一个服务。如果有人找到了正确的语法来消除这个hackaround的需要,我会把这个问题留在这里。如果一周后我没有收到回复,我将使用这个hackaround标记它已完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接