Что касается $ location.search, в документах говорится:
Возвращает часть поиска (как объект) текущего URL-адреса при вызове без каких-либо параметров.
В моем URL-адресе в моей строке запроса есть параметр? Test_user_bLzgB без значения. Также "$ location.search ()" возвращает объект. Как мне получить фактический текст?
javascript
angularjs
Ян Уорбертон
источник
источник
$location.search()
но я хочу проверить "объект", который вы получаете, когда вызываете его ...Ответы:
Не уверен, изменилось ли оно с момента принятия принятого ответа, но это возможно.
$location.search()
вернет объект пар ключ-значение, тех же пар, что и строка запроса. Ключ, не имеющий значения, просто сохраняется в объекте как истинный. В этом случае объектом будет:Вы можете получить доступ к этому значению напрямую с помощью
$location.search().test_user_bLzgB
Пример (с большей строкой запроса): http://fiddle.jshell.net/TheSharpieOne/yHv2p/4/show/?test_user_bLzgB&somethingElse&also&something=Somethingelse
Примечание: из-за хэшей (поскольку он перейдет на http://fiddle.jshell.net/#/url , который создаст новую скрипку), эта скрипка не будет работать в браузерах, которые не поддерживают историю js (не будет работать в IE <10)
Изменить:
как указано в комментариях @Naresh и @DavidTchepak,
$locationProvider
также необходимо правильно настроить: https://code.angularjs.org/1.2.23/docs/guide/$location#-location-service-configurationисточник
$locationProvider
также необходимо правильно настроить: code.angularjs.org/1.2.23/docs/guide/… (Это меня сбило с толку . Надеюсь, эта ссылка еще немного спасет других.)Если вам просто нужно смотреть на строку запроса как на текст, вы можете использовать:
$window.location.search
источник
$location.search()
возвращает объект, состоящий из ключей как переменных и значений как его значения. Итак: если вы напишете строку запроса следующим образом:Вы могли легко получить такой текст:
Если вы не хотите использовать ключ, например? Foo = bar, я предлагаю использовать хеш #test_user_bLzgB,
и звонит
вернет test_user_bLzgB - данные, которые вы хотите получить.
Дополнительная информация:
Если вы использовали метод строки запроса и получаете пустой объект с помощью $ location.search (), это, вероятно, связано с тем, что Angular использует стратегию hashbang вместо html5 ... Чтобы заставить ее работать, добавьте эту конфигурацию в свой модуль
источник
Сначала сделайте формат URL-адреса правильным, чтобы строка запроса использовала #? Q = string, которая работает для меня
Внедрить службу $ location в контроллер
Таким образом, выход должен быть abcd
источник
вы также можете использовать это
источник
Если у вас
$location.search()
не работает, убедитесь, что у вас есть следующее:1)
html5Mode(true)
настраивается в конфигурации модуля приложения2)
<base href="https://stackoverflow.com/">
присутствует в вашем HTMLСсылки:
источник
Angular не поддерживает такую строку запроса.
Предполагается, что запрашиваемая часть URL-адреса представляет собой
&
разделенную последовательность пар ключ-значение, поэтому ее можно прекрасно интерпретировать как объект.Нет вообще никакого API для управления строками запроса, которые не представляют наборы пар ключ-значение.
источник
В моем примере NodeJS у меня есть URL-адрес «localhost: 8080 / Lists / list1.html? X1 = y», по которому я хочу пройти и получить значения.
Чтобы работать с $ location.search () и получить x1 = y, я сделал несколько вещей.
мой list1.js имеет
и мой list1.html имеет
Руководство: https://code.angularjs.org/1.2.23/docs/guide/$location
источник
Мое исправление проще: создать фабрику и реализовать как одну переменную. Например
источник