Bagaimana untuk Mengakses Medan Bukan Struktur dalam Templat Go Dalam Gelung Julat?

DDD
Lepaskan: 2024-11-09 01:00:02
asal
823 orang telah melayarinya

How to Access Non-Struct Fields in Go Templates Within Range Loops?

Mengakses Medan Bukan Struktur dalam Templat Go Dalam Gelung Julat

Apabila mengulangi sepotong struct dalam templat Go menggunakan {{ julat}} gelung, anda mungkin menghadapi ralat jika anda cuba mengakses medan yang bukan sebahagian langsung daripada struct. Sebagai contoh, pertimbangkan contoh berikut:

type User struct {
    Username string
    Password []byte
    Email string
    ...
}

renderer.HTML(w, http.StatusOK, "users/index", map[string]interface{}{
  "lang":  chi.URLParam(r, "lang"),
  "users": users})
Salin selepas log masuk

Dalam templat HTML, anda mungkin menghadapi ralat berikut semasa cuba mengakses medan {{ .lang }}:

`got template: can't evaluate field X in type Y (X not part of Y but stuck in a {{range}} loop)`
Salin selepas log masuk

Ralat ini berlaku kerana medan {{ .lang }} bukan sebahagian daripada struct Pengguna. Untuk menyelesaikan isu ini, anda boleh menggunakan pembolehubah $, yang merujuk data yang diberikan kepada {{ . }} berikutan pemanggilan gelung {{range}}.

{{ range .users }}
  <form action="/{{ $.lang }}/users" method="POST">
    <input type="text" name="Username" value="{{ .Username }}">
    <input type="text" name="Email" value="{{ .Email }}">
  </form>
{{ end }}
Salin selepas log masuk

Mengikut dokumentasi templat Go, apabila gelung {{range}} memulakan pelaksanaan, pembolehubah $ ditetapkan secara automatik kepada data hujah diserahkan kepada templat. Dalam kes ini, hujah data ialah peta yang mengandungi kunci lang. Oleh itu, anda boleh menggunakan $ untuk mengakses nilai lang dalam gelung.

Jika anda memerlukan akses kepada berbilang medan bukan struct dalam gelung bersarang, anda juga boleh menggunakan pernyataan dengan atau penyataan tugasan pembolehubah untuk menetapkan {{ . }} kepada pembolehubah yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Medan Bukan Struktur dalam Templat Go Dalam Gelung Julat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan