2014-11-01 4 views
2

Есть ли способ получить маршрут по URL ??AngularJs получить маршрут по URL

То, что я имею в виду, у меня есть маршрут /users/:id, я получаю объект маршрута с помощью $route

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

Но можно ли маршрут получить этот URL /users/5

Так что, когда я пытаюсь

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

Я получаю неопределенное значение.

ответ

6

Нет, нет встроенного способа получить объект маршрута по соответствующему URL-адресу. Однако это довольно легко сделать с несколькими строками кода. Идея заключается в том, чтобы проверить 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; 
} 
+0

Спасибо, это сработало. –

+0

Это потрясающе, спасибо! –

Смежные вопросы