AngularJS kullanarak URL sorgu parametrelerinin değerlerini okumak istiyorum. HTML'ye şu URL ile erişiyorum:
http://127.0.0.1:8080/test.html?target=bob
Beklendiği gibi, location.search
öyle "?target=bob"
. Hedef değerine erişmek için , web üzerinde listelenen çeşitli örnekler buldum, ancak bunların hiçbiri AngularJS 1.0.0rc10'da çalışmıyor. Özellikle, aşağıdakilerin hepsi undefined
:
$location.search.target
$location.search['target']
$location.search()['target']
Ne işe yarayacağını bilen var mı? ( $location
Denetleyicime parametre olarak kullanıyorum )
Güncelleme:
Aşağıda bir çözüm gönderdim, ancak bundan tamamen memnun değilim. Geliştirici Kılavuzu'ndaki belgeler : Açısal Hizmetler: $ location kullanımı aşağıdakilerle ilgili şunları belirtir $location
:
$ Location'ı ne zaman kullanmalıyım?
Uygulamanızın geçerli URL'deki bir değişikliğe tepki vermesi gerektiğinde veya tarayıcıdaki geçerli URL'yi değiştirmek istiyorsanız.
Benim senaryom için, sayfam sorgu parametresi ile harici bir web sayfasından açılacak, bu yüzden kendi başına "geçerli URL'deki bir değişikliğe tepki vermiyorum". Bu yüzden belki $location
iş için doğru araç değil (çirkin ayrıntılar için aşağıdaki cevabıma bakın). Bu nedenle bu sorunun başlığını "$ konumunu kullanarak AngularJS sorgu parametreleri nasıl okunur?" "AngularJS'deki sorgu parametrelerini okumanın en kısa yolu nedir?" Açıkçası javascript ve düzenli ifadeyi ayrıştırmak için kullanabilirdim location.search
, ancak bu kadar basit bir şey için bu düşük seviyeye gitmek gerçekten programcı hassasiyetlerimi rahatsız ediyor.
Yani: cevabımda kullandığımdan $location
daha iyi bir kullanım yolu var mı, yoksa kısa bir alternatif var mı?
http://127.0.0.1:8080/test.html#?target=bob
işe yarayacaktı, #
önce dikkat edin ?
. $location
sunucuya gönderilmeyen ikinci düzey bir yönlendirme yöntemidir.
$location.search()['target']
sonra çalışır $locationProvider.html5Mode(true)
.