2016-11-25 80 views
0

被刮伤,因为昨天我的头,不能找出如何解决我的问题。我有一个父级:仪表板组件,其中包含页面标题和下拉列表。我的孩子组件目前只包含一行:"Child Component! Chosen value from dropdown list: "Some value"".请看下面的图片。角2儿童和家长(的WebPack,TS,角2最终)

通信工作正常,但导航到仪表盘时,我有麻烦了。

我的路线是这样的:

{ 
    path: 'admin', 
    component: AdminComponent, 
    children: [ 
     { 
      path: '', 
      component: AdminComponent, 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
    ] 
}, 

如果我不加:

 { 
      path: '', 
      component: AdminComponent, 
     }, 

在孩子们的路线,我得到错误:

Uncaught (in promise): Error: Cannot match any routes: 'admin' 
Error: Cannot match any routes: 'admin' 

但是,这也意思是说,当我在孩子中添加这个时,父视图会显示两次。

这一切都很好,当我从下拉列表中,这会触发子视图中选择一项,视图看起来就像它应该的下拉列表和孩子文本行父视图。

我试图改变孩子路由线:

children: [ 
     { 
      path: '', 
      component: AdminComponent, 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
    ] 

到:

children: [ 
     { 
      path: '', 
      redirectTo: 'admin', 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
    ] 

但它不工作

+0

你能否提供一个Plunker与你的代码? –

+0

Childeren和父路由'component'与'DashboardComponent'相同,不要认为会导致无限循环? –

+1

@PankajParkar路由和组件可以看作是分开的。只有在'DashboardComponent'中有一些重定向时,它才能工作..虽然不像预期的那样,但它可以工作;) – PierreDuc

回答

1

改变它的:

children: [ 
     { 
      path: '' 
     }, 
     { 
      path: 'something/:name', 
      component: TestComponent, 
     }, 
] 

这只会渲染否在你的空行径router-outlet上。另一种选择可能是将空路径重定向到something,并让占位符组件显示:'选择疾病'。

+0

完美!那很简单,哈哈。是的,这解决了我的问题,真棒,谢谢! – Alex