¿Cuál es la forma más concisa de leer los parámetros de consulta en AngularJS?

Me gustaría leer los valores de los parámetros de consulta de URL usando AngularJS. Estoy accediendo al HTML con la siguiente URL:

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

Como se esperaba,location.search es"?target=bob". Para acceder al valor deobjetivo, He encontrado varios ejemplos enumerados en la web, pero ninguno de ellos funciona en AngularJS 1.0.0rc10. En particular, los siguientes son todosundefined:

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

Alguien sabe lo que funcionará? (Estoy usando$location como un parámetro para mi controlador)

Actualizar:

He publicado una solución a continuación, pero no estoy del todo satisfecho con ella. La documentación enGuía para desarrolladores: Servicios angulares: Uso de $ location establece lo siguiente sobre$location:

¿Cuándo debo usar $ location?

Cada vez que su aplicación necesite reaccionar a un cambio en la URL actual o si desea cambiar la URL actual en el navegador.

En mi caso, mi página se abrirá desde una página web externa con un parámetro de consulta, por lo que no estoy "reaccionando a un cambio en la URL actual" per se. Así que tal vez$location no es la herramienta adecuada para el trabajo (para los detalles feos, vea mi respuesta a continuación). Por lo tanto, he cambiado el título de esta pregunta de "¿Cómo leer los parámetros de consulta en AngularJS usando $ location?" a "¿Cuál es la forma más concisa de leer los parámetros de consulta en AngularJS?". Obviamente podría usar javascript y expresiones regulares para analizarlocation.search, pero ir a ese nivel bajo para algo tan básico realmente ofende la sensibilidad de mi programador.

Entonces: ¿hay una mejor manera de usar$location de lo que hago en mi respuesta, o hay una alternativa concisa?

Respuestas a la pregunta(10)

Su respuesta a la pregunta