2017-01-06 113 views
1

我有以下途徑:如何重定向到特定路徑?

const routes: Routes = [ 
    { 
     path: '', component: InvestmentsCenterContainerComponent, 
     children: [ 
      { 
       path: '', component: InvestmentsCenter, 
       children: [ { 
        path: ':id', 
        children: [ { 
         path: '', 
         component: InvestmentsListComponent, 
         resolve: { investmentsData: InvestmentsDetailResolver }, 

        } ] 
       } ] 
      }, { 
       path: 'investment', component: InvestmentDetailComponent // <- cannot navigate to here 
      } 

     ] 
    }, 

]; 

在InvestmentsListComponents裏面一個按鈕,用戶點擊後,我想他重定向到InvestmentDetailComponent

我使用下面的嘗試重定向:

this.router.navigate([ '/investment' ]).then((d) => console.log(d)); 

然而,這並不重定向我在任何地方,我試圖把相應的路徑在Routespath: ':id;兒童下,但仍與正o結果。我也嘗試使用relativeTo屬性進行導航,但無濟於事。

值得注意的是,上述路線具有父路徑:

path: 'investments' 

任何建議都高度讚賞。

+0

什麼是父路徑? – echonax

+0

@echonax投資,我在主應用程序路由文件中加載它的模塊 – abedzantout

回答

0

如果在導航時放置/,它將作爲絕對路徑。

因此,在這種情況下,正確的路徑應該是

this.router.navigate([ '/investments/investment' ]).then((d) => console.log(d)); 

更多信息:https://angular.io/docs/ts/latest/guide/router.html#!#relative-navigation

+0

我明白了,但是這不會加載InvestmentDetailComponent。如果我想重定向':id',該怎麼辦? – abedzantout

+0

@ Predator44它加載了什麼?任何錯誤?如果你想瀏覽w.r.t,你可以看看'relativeTo'參數。 – echonax

+1

根本不是,但返回的承諾是錯誤的。無論如何,這個答案將我置於正確的道路上,所以我認爲這是一個可以接受的答案。謝謝。 – abedzantout