1

你是否知道如果你想去另一個頁面,你可以使用下面的代碼?Angular2:如何從路由器檢索路徑數組?

this.router.navigate(['section1', 'section1-children', 'my-page']); 

在這裏,你也知道,在每arraystring在加載相關的部件內置模塊的路由文件中聲明的路徑。

現在,如果我想使用navigate方法的組件對路由路徑不可知,如何檢索與完整當前路徑對應的字符串數組?

我想有這樣的代碼如下:

let path:Array<string> = this.router.getCurrentArray(); 
path.push('my-page'); 
this.router.navigate(path); 

我曾嘗試使用ActivatedRoute服務,但我發現的唯一有效方法是:

this.activatedRoute.pathFromRoot; 

一個返回Route數組,而不是字符串。

你知道更好的方法來達到我的目的嗎?

回答

2

您可以使用

this.router.navigate('../' + path); 

與其中一個條目從

path = this.router.config[x].path; 

您應該能夠通過

this.router.routerState.snapshot.url 

這僅適用於Router情況下獲得的完整路徑注入路由器爲此路由添加的組件。

+0

'config'不是我想要的。第二種方式迫使我使用'navigateByUrl'方法而不是'navigate'。我對嗎? – smartmouse

+0

剛剛看到'this.activatedRoute.pathFromRoot;'一次提供所有段,這比迭代自己更好。 'config'是爲了獲得可用的(子)路由,我誤解了你的問題。如果你連接'pathFromRoot'條目的'路徑'段? https://angular.io/docs/ts/latest/api/router/index/UrlSegment-class.html#!#path-anchor –

+0

在我看來,你或我的兩種方式都是「骯髒」的方式來獲得當前路徑。奇怪的是沒有更好的方法。 – smartmouse