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']}}