我有一个简单的案例,其中模板(text/templates)包括这样的另一个
`index.html`
{{ template "image_row" . }}
`image_row.html`
{{ define "image_row" }}
To stuff here
{{ end }}
Run Code Online (Sandbox Code Playgroud)
现在我想重用图像行模板.假设我想传递一个简单的数字,以便image_row模板根据此数字构建行
我想有类似的东西(其中5是附加参数)
index.html
{{ template "image_row" . | 5 }}
Run Code Online (Sandbox Code Playgroud)
在这种情况下我怎么能实现呢?
我不确定是否存在用于将多个参数传递给模板调用的内置解决方案,但是,如果没有一个,您可以定义一个合并其参数并将它们作为单个切片值返回的函数,然后就可以了注册该函数并在模板调用中使用它.
就像是:
func args(vs ...interface{}) []interface{} { return vs }
t, err := template.New("t").Funcs(template.FuncMap{"args":args}).Parse...
Run Code Online (Sandbox Code Playgroud)
然后,在你的index.html,你会这样做:
{{ template "image_row" args . 5 }}
Run Code Online (Sandbox Code Playgroud)
然后在您的image_row模板中,您可以使用内置index函数访问参数,如下所示:
{{ define "image_row" }}
To stuff here {{index . 0}} {{index . 1}}
{{ end }}
Run Code Online (Sandbox Code Playgroud)
https://play.golang.org/p/gkdtvvJ1bb