AngularJS: считывание параметра маршрута изнутри контроллера

Как можно считывать параметр из URL-адреса в контроллере AngularJS?

Скажем, у меня есть URL как http://localhost/var/:value, и я хочу, чтобы значение сохранялось в переменной в контроллере для URL /var/:value.

Я попытался использовать $routeParams.value и $route.current.params.value, но $routeParams - undefined в начале и $route не работает.

Ответ 1

Проблема заключается в том, что вы, вероятно, вводите $routeParams или $route в контроллер, который запускается до того, как произошло изменение маршрута, например. ваш главный/главный/страничный контроллер.

Если вы введете $routeParams в контроллер для определенного маршрута (заданный свойством controller при определении маршрута), тогда он будет работать, иначе вы, вероятно, лучше слушаете различные события маршрута службы.

Попробуйте изменить свой код, чтобы использовать

$scope.$on('$routeChangeSuccess', function (ev, current, prev) {
   // ... 
});

Ответ 2

Требования: Убедитесь, что "ngRoute" находится в вашем модуле приложения.

Route provider set up as: http://localhost/var/:valName

Функция настроена как:

function functionName($scope, $routeParams){$scope.value = $routeParams.valName;}

HTML-представление:

{{value['valName']}}