Mengakses Parameter URL Dalam Gelung Julat Templat
Apabila bekerja dengan templat Go, adalah penting untuk memahami cara data boleh diakses dalam gelung. Pertimbangkan kod dan templat berikut:
type User struct { Username string Password []byte Email string } func main() { users := []User{ {Username: "Alice", Email: "alice@example.com"}, {Username: "Bob", Email: "bob@example.com"}, } renderer.HTML(w, http.StatusOK, "users/index", map[string]interface{}{ "lang": chi.URLParam(r, "lang"), "users": users, }) }
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Dalam senario ini, anda mungkin menghadapi ralat yang menunjukkan bahawa medan "lang" bukan sebahagian daripada struct "Pengguna". Untuk menangani perkara ini, kita boleh memanfaatkan konsep "titik" dan pembolehubah khas "$."
Memahami Titik dan $
Apabila gelung dipanggil, kandungan "titik" (.) diberikan kepada pembolehubah khas "$." Ini membolehkan kami mengakses data dari luar gelung dalam blok julat. Contohnya, untuk mengakses parameter "lang", kami boleh menggunakan "$" seperti berikut:
{{ range .users }} <form action="/{{ $.lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
Pendekatan ini berjaya menyelesaikan isu tersebut, membolehkan anda mengakses parameter "lang" dalam gelung julat. Tingkah laku "titik" dan "$" didokumenkan dalam panduan templat Go.
Pendekatan Alternatif
Jika anda menghadapi senario di mana mengakses data menggunakan "$" adalah mencabar kerana gelung bersarang, pertimbangkan pilihan alternatif seperti menetapkan "titik" kepada pembolehubah sementara atau menggunakan pernyataan "dengan" untuk mencipta skop khusus untuk memberikan data.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Parameter URL Dalam Gelung Julat Templat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!