将多个参数传递给Golang模板
#go #template #arguments

您是否曾经想将多个参数传递给GO模板?如果您的Google Google,您将确信这是不可能的。但是忍受我。

在GO模板中,您可以将单个“参数”(Go Alance中的管道)传递到模板定义的块中。但是,通过创建一个简单的辅助功能,您可以根据需要传递尽可能多的参数。只需将此函数添加到您的FuncMap

func(els ...any) []any {
    return els
}

您将能够创建诸如:
之类的构造

{{ template "MyTemplate" (arr "str" 123 .Some.Value) }}

{{ define "MyTeplate" }}
  {{ $strArg := index . 0 }}
  {{ $intArg := index . 1 }}
  {{ $valArg := index . 2 }}

  This is my str {{ $strArg }} parameter.
  ...
{{ end }}

我命名为arr我的助手功能,但您可以随心所欲地称其为。

享受!