Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menguji Medan Sah dalam Templat Golang Tanpa Litar pintas?
Ujian Templat Golang untuk Medan Sah
Masalah:
Apabila cuba menguji untuk kewujudan medan yang sah dalam templat Golang menggunakan fungsi dan templat, beberapa kaedah biasa telah gagal. Tingkah laku ini berpunca daripada fakta bahawa dan bukan litar pintas dinilai, tidak seperti operator &&, menyebabkan ralat seperti "jenis tidak sah untuk perbandingan" apabila cuba membandingkan medan nol dengan nilai.
Penyelesaian :
Disebabkan penilaian bukan litar pintas dan dalam templat, pendekatan alternatif mesti diambil. Berikut adalah dua kaedah yang boleh digunakan untuk senario ini:
1. Penyata if Bersarang:
{{if $.MyStruct.MyField}} {{if eq $.MyStruct.MyField.Value .}}selected="selected"{{end}} {{end}}
Dalam pendekatan ini, penyataan if luar menyemak sama ada $.MyStruct.MyField wujud, dan penyataan if dalam menyemak sama ada Nilainya sama dengan nilai yang diingini. Ini memastikan perbandingan hanya dilakukan jika medan tidak kosong.
2. dengan Tindakan:
<select name="y"> {{range $idx, $e := .SomeSlice}} <option value="{{.}}" {{with $.MyStruct.MyField}} {{if eq .Value $e}}selected="selected"{{end}} {{end}}>{{.}}</option> {{end}} </select>
Tindakan dengan menetapkan titik kepada nilai yang disediakan, membenarkan akses kepada medannya. Dalam kes ini, tindakan dengan digunakan untuk menyediakan akses kepada medan $.MyStruct.MyField dalam skop dalaman, tempat perbandingan dilakukan.
Atas ialah kandungan terperinci Bagaimana untuk Menguji Medan Sah dalam Templat Golang Tanpa Litar pintas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!