AngularJs通过URL获取路由

时间:2014-11-01 08:51:00

标签: angularjs angularjs-routing

有没有办法按URL获取路线?

我的意思是我有一条路线/users/:id,我使用$route获取路线对象

var route_object = ($route.routes['/users/:id']);

但是可以使用此网址/users/5

获取路线

所以当我尝试

var route_object = ($route.routes['/users/5']);

我得到了未定义的值。

1 个答案:

答案 0 :(得分:6)

不,没有通过相应网址获取路由对象的内置方式。但是使用几行代码很容易。我们的想法是针对路由正则表达式测试url:

var url = '/users/5/';

for (var path in $route.routes) {
    if ($route.routes[path].regexp && $route.routes[path].regexp.test(url)) {
        console.log('found route:', $route.routes[path]); 
    }
}

您可以将其包装在辅助函数中并输入某些util服务或控制器:

function getRouteByUrl(url) {
    for (var path in $route.routes) {
        if ($route.routes[path].regexp && $route.routes[path].regexp.test(url)) {
            return $route.routes[path]; 
        }
    }
    return null;
}