您是否曾经想将多个参数传递给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
我的助手功能,但您可以随心所欲地称其为。
享受!