Mengenai $ location.search, itu dokumen tersebut mengatakan,
Kembalikan bagian pencarian (sebagai objek) dari url saat ini ketika dipanggil tanpa parameter apa pun.
Di url saya, string kueri saya memiliki param '? Test_user_bLzgB' tanpa nilai. Juga '$ location.search ()' mengembalikan sebuah objek. Bagaimana cara mendapatkan teks yang sebenarnya?
javascript
angularjs
Ian Warburton
sumber
sumber
$location.search()
tetapi saya ingin memeriksa "objek" yang Anda dapatkan ketika Anda memanggilnya ...Jawaban:
Tidak yakin apakah itu telah berubah sejak jawaban yang diterima diterima, tetapi itu mungkin.
$location.search()
akan mengembalikan objek pasangan nilai kunci, pasangan yang sama seperti string kueri. Kunci yang tidak memiliki nilai hanya disimpan di objek sebagai true. Dalam hal ini, objeknya adalah:Anda dapat mengakses nilai ini secara langsung dengan
$location.search().test_user_bLzgB
Contoh (dengan string kueri yang lebih besar): http://fiddle.jshell.net/TheSharpieOne/yHv2p/4/show/?test_user_bLzgB&somethingElse&also&something=Somethingelse
Catatan: Karena hashes (karena akan masuk ke http://fiddle.jshell.net/#/url , yang akan membuat biola baru), biola ini tidak akan berfungsi di browser yang tidak mendukung riwayat js (tidak akan berfungsi di IE <10)
Sunting:
Seperti yang ditunjukkan di komentar oleh @Naresh dan @DavidTchepak,
$locationProvider
juga perlu dikonfigurasi dengan benar: https://code.angularjs.org/1.2.23/docs/guide/$location#-location-service-configurationsumber
$locationProvider
juga perlu dikonfigurasi dengan benar: code.angularjs.org/1.2.23/docs/guide/… (Ini membuat saya tersandung. Semoga tautan ini menghemat waktu orang lain.)Jika Anda hanya perlu melihat string kueri sebagai teks, Anda dapat menggunakan:
$window.location.search
sumber
$location.search()
mengembalikan sebuah objek, terdiri dari kunci sebagai variabel dan nilai sebagai nilainya. Jadi: jika Anda menulis string kueri Anda seperti ini:Anda bisa dengan mudah mendapatkan teks seperti ini:
Jika Anda tidak ingin menggunakan kunci, nilai seperti? Foo = bar, saya sarankan menggunakan hash #test_user_bLzgB,
dan menelepon
akan mengembalikan 'test_user_bLzgB' yang merupakan data yang ingin Anda ambil.
Informasi tambahan:
Jika Anda menggunakan metode string kueri dan Anda mendapatkan objek kosong dengan $ location.search (), itu mungkin karena Angular menggunakan strategi hashbang daripada html5 ... Untuk membuatnya berfungsi, tambahkan konfigurasi ini ke modul
sumber
Pertama buat format URL benar untuk mendapatkan string kueri, gunakan #? Q = string yang cocok untuk saya
Masukkan $ location service ke pengontrol
Jadi keluarannya harus abcd
sumber
kamu bisa menggunakan ini juga
sumber
Jika Anda
$location.search()
tidak berfungsi, pastikan Anda memiliki yang berikut:1)
html5Mode(true)
dikonfigurasi dalam konfigurasi modul aplikasi2)
<base href="https://stackoverflow.com/">
ada di HTML AndaReferensi:
sumber
Angular tidak mendukung jenis string kueri ini.
Bagian kueri dari URL seharusnya merupakan
&
urutan pasangan kunci-nilai yang terpisah, sehingga dapat ditafsirkan dengan sempurna sebagai objek.Tidak ada API sama sekali untuk mengelola string kueri yang tidak mewakili kumpulan pasangan kunci-nilai.
sumber
Dalam contoh NodeJS saya, saya memiliki url "localhost: 8080 / List / list1.html? X1 = y" yang ingin saya lintasi dan dapatkan nilai.
Untuk bekerja dengan $ location.search () untuk mendapatkan x1 = y, saya telah melakukan beberapa hal
list1.js saya punya
dan list1.html saya punya
Panduan: https://code.angularjs.org/1.2.23/docs/guide/$location
sumber
Perbaikan saya lebih sederhana, buat pabrik, dan terapkan sebagai satu variabel. Sebagai contoh
sumber