首頁  >  文章  >  後端開發  >  如何在 Go 模板範圍循環中存取外部參數?

如何在 Go 模板範圍循環中存取外部參數?

Linda Hamilton
Linda Hamilton原創
2024-11-09 15:42:02329瀏覽

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

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn