2015-06-30 34 views
0

我希望能够访问用于路由的路径格式。例如,假设以下配置:访问用于路由的路径格式

app.config(function($routeProvider){ 
    $routeProvider 
     .when('/users/:id/edit', { 
      templateUrl: 'users/form.html', 
      controller: 'UsersController' 
     }) 
     .when('/users/:id', { 
      templateUrl: 'users/show.html', 
      controller: 'UsersController' 
     }) 
     .otherwise({ redirectTo: '/' }); 
}); 

我想我UsersController能够访问到被用于路由路径格式字符串(例如'/users/:id/edit')。我一直能找到这样做的唯一方法是在控制器中注入$route作为依赖项,然后访问属性$route.current.$$route.originalPath。这有效,但它使用'私人'$$route属性。如果可能,我想采用更合理的方法。

+0

'$ location.hash()'会给你一样的.. –

+0

@pankajparkar你确定吗?它对我没有任何回报,这与我期望的基于文档的一致:https://docs.angularjs.org/api/ng/service/$location – maxedison

+0

哦..这是我的坏..那将是'$ location.url()'https://docs.angularjs.org/api/ng/service/$location#url –

回答

0

$$模式是“保护”库的内部免于不知情的用户修补它们。也就是说,有时候你需要对内部进行修改;例如,你正在创建特定的东西,而不是典型的用例。

必须知道使用的路径格式非常非典型,因此我认为使用$route.current.$$route.originalPath可能是正确的解决方案。它通常是“隐藏”的,因为通常我们不需要这个值,但最终它们确实在应用程序中有一个函数,看起来你需要它。