有没有办法按URL获取路线?
我的意思是我有一条路线/users/:id
,我使用$route
获取路线对象
var route_object = ($route.routes['/users/:id']);
但是可以使用此网址/users/5
所以当我尝试
时 var route_object = ($route.routes['/users/5']);
我得到了未定义的值。
答案 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;
}