2016-03-06 157 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