在模板之间传递数据
您的查询涉及将数据从一个模板传递到另一个模板。您有一个包含子模板 (image_row.html) 的父模板 (index.html),但希望将其他数据传递给子模板。
模板的默认行为仅允许父模板中定义的数据才能传递给孩子。但是,您可以通过采用一些技术来实现您的目标:
对多个参数使用函数
一种方法是定义一个函数,将您的参数聚合为一个函数切片值。然后,您可以注册此函数并在模板中调用它。
例如:
import "text/template" func args(vs ...interface{}) []interface{} { return vs } t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)
在index.html中:
{{ template "image_row" args . 5 }}
在image_row.html中:
{{ define "image_row" }} Data: {{ index . 0 }} {{ index . 1 }} {{ end }}
这允许您使用索引函数访问子模板中的参数:
{{ index . 0 }} -> . {{ index . 1 }} -> 5
其他方法
或者,您可以考虑:
以这种方式自定义数据传递机制可以让您灵活地控制数据如何在模板之间共享。
以上是在 Go 模板中,如何将数据从父模板传递到子模板?的详细内容。更多信息请关注PHP中文网其他相关文章!