Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengakses Parameter Luaran dalam Gelung Julat Templat Go?

Bagaimana untuk Mengakses Parameter Luaran dalam Gelung Julat Templat Go?

Linda Hamilton
Linda Hamiltonasal
2024-11-09 15:42:02358semak imbas

How to Access External Parameters in a Go Template Range Loop?

Go Template Mengakses Parameter Luaran dalam Gelung Julat

Pertimbangkan situasi di mana anda mempunyai struct Pengguna dengan medan seperti Nama Pengguna, Kata Laluan dan E-mel. Dalam aplikasi web, struktur URL mungkin termasuk parameter bahasa (en) yang perlu diakses dalam templat yang berulang ke atas pengguna.

Dalam templat yang disediakan:

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

Mengakses .lang dalam gelung julat menghasilkan ralat berikut:

"tidak dapat menilai medan X dalam jenis Y (X bukan sebahagian daripada Y tetapi tersekat dalam {{range}} gelung)"

Untuk menyelesaikan isu ini, anda perlu mengakses parameter .lang dari luar gelung. Ini boleh dicapai dengan menggunakan pembolehubah $. Selepas seruan julat, kandungan pembolehubah julat (. dalam kes ini) diberikan kepada $. Oleh itu, templat boleh diubah suai 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 }}

Dengan menggunakan $, templat boleh berjaya mengakses parameter .lang walaupun ia bukan medan dalam struct Pengguna.

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

Kenyataan:
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