Was ist die übersichtlichste Methode zum Lesen von Abfrageparametern in AngularJS?

Ich möchte die Werte von URL-Abfrageparametern mit AngularJS lesen. Ich greife auf den HTML-Code mit der folgenden URL zu:

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

Wie erwartet,location.search ist"?target=bob". Für den Zugriff auf den Wert vonZielIch habe verschiedene Beispiele im Internet gefunden, aber keines davon funktioniert in AngularJS 1.0.0rc10. Insbesondere sind die folgenden alleundefined:

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

Weiß jemand, was funktionieren wird? (Ich benutze$location als Parameter für meinen Controller)

Aktualisieren:

Ich habe unten eine Lösung gepostet, bin aber nicht ganz zufrieden damit. Die Dokumentation beiEntwicklerhandbuch: Angular Services: Verwenden von $ location besagt folgendes über$location:

Wann sollte ich $ location verwenden?

Jedes Mal, wenn Ihre Anwendung auf eine Änderung der aktuellen URL reagieren muss oder wenn Sie die aktuelle URL im Browser ändern möchten.

In meinem Szenario wird meine Seite von einer externen Webseite mit einem Abfrageparameter geöffnet, sodass ich nicht per se auf eine Änderung der aktuellen URL reagiere. Vielleicht$location ist nicht das richtige Werkzeug für den Job (für die hässlichen Details siehe meine Antwort unten). Ich habe daher den Titel dieser Frage geändert von "Wie lese ich Abfrageparameter in AngularJS mit $ location?" zu "Was ist die übersichtlichste Methode zum Lesen von Abfrageparametern in AngularJS?". Offensichtlich könnte ich nur Javascript und regulären Ausdruck verwenden, um zu analysierenlocation.search, aber dieses niedrige Niveau für etwas so grundlegendes zu gehen verletzt wirklich meine Programmiererempfindlichkeiten.

Also: gibt es einen besseren Weg zu nutzen$location als ich in meiner Antwort tue, oder gibt es eine kurze Alternative?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage