Я хотел бы прочитать значения параметров запроса URL с использованием AngularJS. Я получаю доступ к HTML со следующим URL-адресом:
http://127.0.0.1:8080/test.html?target=bob
Как и ожидалось, location. search
is "?target=bob"
.
Для доступа к значению targetя нашел различные примеры, перечисленные в Интернете, но ни один из них не работает в AngularJS 1.0.0rc10. В частности, все следующие undefined
:
$location.search.target
$location.search['target']
$location.search()['target']
Кто-нибудь знает, что сработает? (Я использую $location
в качестве параметра моего контроллера)
Обновление:
Ниже я разместил решение, но оно меня не полностью устраивает.
В документации в Руководство разработчика: Службы Angular: использование $locationговорится о $location
следующее:
Когда следует использовать $location?
Каждый раз, когда вашему приложению необходимо отреагировать на изменение текущего URL или если вы хотите изменить текущий URL в браузере.
В моем сценарии моя страница будет открыта с внешней веб-страницы с параметром запроса, поэтому я не «реагирую на изменение текущего URL-адреса» как таковой. Так что, возможно, $location
не подходит для этой работы (уродливые подробности см. в моем ответе ниже).Поэтому я изменил заголовок этого вопроса с «Как читать параметры запроса в AngularJS, используя $location?» на «Какой самый краткий способ чтения параметров запроса в AngularJS?». Очевидно, я мог бы просто использовать javascript и регулярное выражение для синтаксического анализа location.search
, но переход на такой низкий уровень для чего-то настолько простого действительно оскорбляет мои чувства программиста.
Итак: есть ли лучший способ использовать $location
, чем я в своем ответе, или есть краткая альтернатива?