Go テンプレート範囲ループで外部パラメーターにアクセスするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-09 15:42:02
オリジナル
328 人が閲覧しました

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 }}
ログイン後にコピー

アクセス範囲ループ内で .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 }}
ログイン後にコピー

$ を使用すると、テンプレートは、User struct のフィールドではないにもかかわらず、.lang パラメータに正常にアクセスできます。

以上がGo テンプレート範囲ループで外部パラメーターにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート