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?