Em relação a $ location.search, os documentos dizem:
Retorna a parte de pesquisa (como objeto) da url atual quando chamada sem qualquer parâmetro.
Em meu url, minha string de consulta tem um parâmetro '? Test_user_bLzgB' sem um valor. Além disso, '$ location.search ()' retorna um objeto. Como obtenho o texto real?
javascript
angularjs
Ian Warburton
fonte
fonte
$location.search()
mas eu gostaria de verificar o "objeto" que você obtém ao chamá-lo ...Respostas:
Não tenho certeza se mudou desde que a resposta aceita foi aceita, mas é possível.
$location.search()
retornará um objeto de pares de valores-chave, os mesmos pares da string de consulta. Uma chave sem valor é apenas armazenada no objeto como verdadeira. Nesse caso, o objeto seria:Você pode acessar este valor diretamente com
$location.search().test_user_bLzgB
Exemplo (com string de consulta maior): http://fiddle.jshell.net/TheSharpieOne/yHv2p/4/show/?test_user_bLzgB&somethingElse&also&something=Somethingelse
Nota: Devido aos hashes (pois irá para http://fiddle.jshell.net/#/url , o que criaria um novo fiddle), este fiddle não funcionará em navegadores que não suportam js history (não funcionará no IE <10)
Edit:
Conforme apontado nos comentários de @Naresh e @DavidTchepak, o
$locationProvider
também precisa ser configurado corretamente: https://code.angularjs.org/1.2.23/docs/guide/$location#-location-service-configurationfonte
$locationProvider
também precisa ser configurado corretamente: code.angularjs.org/1.2.23/docs/guide/… (Isso me fez tropeçar. Espero que o link economize algum tempo para outros.)Se você só precisa ver a string de consulta como texto, pode usar:
$window.location.search
fonte
$location.search()
retorna um objeto, consistindo nas chaves como variáveis e nos valores como seu valor. Então: se você escrever sua string de consulta assim:Você poderia facilmente obter o texto assim:
Se você deseja não usar uma chave, valor como? Foo = bar, sugiro usar um hash #test_user_bLzgB,
e chamando
retornaria 'test_user_bLzgB' que são os dados que você deseja recuperar.
Informação adicional:
Se você usou o método de string de consulta e está obtendo um objeto vazio com $ location.search (), provavelmente é porque o Angular está usando a estratégia hashbang em vez de html5 ... Para fazê-lo funcionar, adicione esta configuração ao seu módulo
fonte
Primeiro, faça o formato do URL correto para obter a string de consulta, use #? Q = string que funciona para mim
Injetar o serviço $ location no controlador
Portanto, a saída deve ser abcd
fonte
você pode usar isso também
fonte
Se seu
$location.search()
não estiver funcionando, certifique-se de ter o seguinte:1)
html5Mode(true)
está configurado na configuração do módulo do aplicativo2)
<base href="https://stackoverflow.com/">
está presente em seu HTMLReferências:
fonte
O Angular não oferece suporte a esse tipo de string de consulta.
A parte da consulta do URL deve ser uma
&
sequência separada de pares de valores-chave, portanto, perfeitamente interpretável como um objeto.Não há API para gerenciar strings de consulta que não representem conjuntos de pares de valores-chave.
fonte
No meu exemplo NodeJS, tenho um url "localhost: 8080 / Lists / list1.html? X1 = y" que desejo percorrer e adquirir valores.
Para trabalhar com $ location.search () para obter x1 = y, fiz algumas coisas
meu list1.js tem
e meu list1.html tem
Guia: https://code.angularjs.org/1.2.23/docs/guide/$location
fonte
Minha correção é mais simples, criar uma fábrica e implementar como uma variável. Por exemplo
fonte