範囲ループで外部パラメーターにアクセスする 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 サイトの他の関連記事を参照してください。