Jaki jest najbardziej zwięzły sposób odczytu parametrów zapytań w AngularJS?

Chciałbym odczytać wartości parametrów zapytania URL za pomocą AngularJS. Uzyskuję dostęp do kodu HTML za pomocą następującego adresu URL:

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

Zgodnie z oczekiwaniami,location.search jest"?target=bob". Aby uzyskać dostęp do wartościcel, Znalazłem różne przykłady wymienione w sieci, ale żaden z nich nie działa w AngularJS 1.0.0rc10. W szczególności wszystkie są następująceundefined:

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

Ktoś wie, co będzie działać? (Używam$location jako parametr do mojego kontrolera)

Aktualizacja:

Opublikowałem poniżej rozwiązanie, ale nie jestem z niego całkowicie zadowolony. Dokumentacja wPrzewodnik programisty: Usługi kątowe: Używanie lokalizacji $ stwierdza, co następuje$location:

Kiedy należy użyć lokalizacji $?

Za każdym razem, gdy aplikacja musi reagować na zmianę bieżącego adresu URL lub jeśli chcesz zmienić bieżący adres URL w przeglądarce.

W moim scenariuszu moja strona zostanie otwarta z zewnętrznej strony internetowej z parametrem zapytania, więc nie „sam reaguję na zmianę bieżącego adresu URL”. Więc może$location nie jest właściwym narzędziem do pracy (dla brzydkich szczegółów zobacz moją odpowiedź poniżej). Dlatego zmieniłem tytuł tego pytania z „Jak odczytać parametry zapytania w AngularJS przy użyciu $ location?” do „Jaki jest najbardziej zwięzły sposób odczytu parametrów zapytania w AngularJS?”. Oczywiście mogłem po prostu użyć javascript i wyrażeń regularnych do analizylocation.search, ale podążanie za tym niskim poziomem za coś tak podstawowego naprawdę obraża moją wrażliwość programistyczną.

Więc: czy jest lepszy sposób na wykorzystanie$location niż w mojej odpowiedzi, czy też istnieje zwięzła alternatywa?

questionAnswers(11)

yourAnswerToTheQuestion