首页  >  文章  >  后端开发  >  如何在 Go 的 text/template 包中的模板之间传递数据?

如何在 Go 的 text/template 包中的模板之间传递数据?

DDD
DDD原创
2024-10-27 02:59:03619浏览

How to Pass Data Between Templates in Go's text/template Package?

在模板之间传递数据

模板渲染中的一个常见要求是能够在模板之间传递数据。在 Go 的文本/模板包中,这可以使用函数和模板调用技术的组合来实现。

要将简单的数字作为附加参数传递给嵌套模板,您可以定义一个合并其参数的函数转换为单个切片值。然后可以在模板调用中注册并使用该函数。

这里是一个示例:

<code class="go">func args(vs ...interface{}) []interface{} {
    return vs
}</code>
<code class="go">t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)</code>

在index.html模板中,使用args函数合并当前带有附加参数的数据:

<code class="html">{{ template "image_row" args . 5 }}</code>

在 image_row.html 模板中,使用索引内置函数访问参数:

<code class="html">{{ define "image_row" }}
   To stuff here {{ index . 0 }} {{ index . 1 }}
{{ end }}</code>

这种方法允许您传递任意数据在模板之间构建更复杂且可重用的模板组件。

以上是如何在 Go 的 text/template 包中的模板之间传递数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn