Qual é a maneira mais concisa de ler os parâmetros de consulta no AngularJS?

Gostaria de ler os valores dos parâmetros de consulta de URL usando o AngularJS. Estou acessando o HTML com o seguinte URL:

http://127.0.0.1:8080/test.html?target=bob

Como esperado,location.search é"?target=bob". Para acessar o valor dealvoEu encontrei vários exemplos listados na web, mas nenhum deles funciona no AngularJS 1.0.0rc10. Em particular, os seguintes são todosundefined:

$location.search.target$location.search['target']$location.search()['target']

Alguém sabe o que vai funcionar? (Estou a usar$location como um parâmetro para o meu controlador)

Atualizar:

Eu publiquei uma solução abaixo, mas não estou totalmente satisfeito com isso. A documentação emGuia do desenvolvedor: Angular Services: usando $ location afirma o seguinte sobre$location:

Quando devo usar a localização $?

Sempre que seu aplicativo precisar reagir a uma alteração no URL atual ou se você quiser alterar o URL atual no navegador.

Para o meu cenário, minha página será aberta a partir de uma página da Web externa com um parâmetro de consulta, portanto, não estou "reagindo a uma alteração no URL atual" em si. Então talvez$location não é a ferramenta certa para o trabalho (para os detalhes feios, veja minha resposta abaixo). Por isso, mudei o título desta pergunta de "Como ler parâmetros de consulta no AngularJS usando $ location?" para "Qual é a maneira mais concisa de ler os parâmetros de consulta no AngularJS?". Obviamente eu poderia usar JavaScript e expressões regulares para analisarlocation.search, mas esse baixo nível para algo tão básico realmente ofende minha sensibilidade de programador.

Então, existe uma maneira melhor de usar$location do que eu faço na minha resposta, ou existe uma alternativa concisa?

questionAnswers(11)

yourAnswerToTheQuestion