2016-03-06 191 views
1

我正在尋找一種方法來檢索當前路線的路徑名稱,因爲我在$routeProvider中定義了它,即/customer/:id如何在AngularJS中獲取當前路徑的路徑名?

$location.path()返回路徑/customer/1,但不包含路徑名稱/customer/:id

我發現$route.current.$$route.originalPath正是我所需要的。不過,我非常希望不必依賴私人方法。

是否有公共等價物$route.current.$$route.originalPath

+0

我可以知道究竟你想在這裏做 –

+0

@PankajParkar可以讓我知道這個問題的一部分,目前還不清楚嗎? –

+0

獲得$$ route.originalPath後,你在做什麼? –

回答

0

您可以使用

$state.$current.url.sourcePath 

但它是哈克太:)

+0

爲什麼你說這是哈克? –

+0

不知道,也許是因爲我從來沒有直接在狀態下使用無法解析的狀態url,所以對於我來說,使用'$ current'是一個奇怪的事實在所有:)請注意,您還可以訪問未解析的狀態url in $ stateChangeStart和$ stateChangeSuccess監聽器在$ rootScope中的第二個參數(toState) –

+1

不幸的是,這是'ui-router'。我正在尋找'ngRoute'的解決方案。 –

0

不知道,如果你發現了另一種方式來做到這一點,正巧遇到了這個問題,而我是在調試一點點一些路由問題 -

AFAIK獲得正是你需要的唯一的方法是使用:

$route.current.$$route.originalPath 

解決此問題的另一種方法是使用廣播事件(如routeChangeStart/routeChangeSuccess)正式知道哪條路由已解決。

$rootScope.$on('$routeChangeSuccess', function (event, next, prev) { 
    console.log(next.$$route.originalPath); 
}); 
0

嘗試

$route.current.originalPath