Go 範本在範圍循環中存取外部參數
考慮這樣一種情況,您有一個包含使用者名稱、密碼等欄位的User 結構體,電子郵件。在 Web 應用程式中,URL 結構可能包含需要在迭代使用者的範本中存取的語言參數 (en)。
在提供的範本中:
{{ range .users }} <form action="/{{ .lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
存取range 循環中的.lang 會導致以下錯誤:
「無法評估類型Y 中的欄位X(X不是Y 的一部分,而是陷入{{range}} 循環)」
要解決這個問題,需要從循環外部存取.lang參數。這可以透過使用 $ 變數來實現。在範圍呼叫之後,範圍變數(在本例中為.)的內容被指派給$。因此,模板可以修改如下:
{{ range .users }} <form action="/{{ $.lang }}/users" method="POST"> <input type="text" name="Username" value="{{ .Username }}"> <input type="text" name="Email" value="{{ .Email }}"> </form> {{ end }}
透過使用 $,模板可以成功存取 .lang 參數,儘管它不是 User 結構中的欄位。
以上是如何在 Go 模板範圍循環中存取外部參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!