首页 > 后端开发 > Golang > 正文

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

DDD
发布: 2024-10-27 02:59:03
原创
716 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板