go - 在 golang 模板之间共享变量
问题描述
我想用 GOtemplate 生成 2 个单独的文件,假设我有这个代码:
aBuffer := new(bytes.Buffer)
bBuffer := new(bytes.Buffer)
aTmpl, _ := template.ParseFiles(aFilePath)
aTmpl.Execute(aBuffer, someVariables)
bTmpl, _ := template.ParseFiles(bFilePath)
bTmpl.Execute(bBuffer, someVariables)
假设我对这两个文件使用了一个通用 var(不是来自“someVariables”golang var),我有没有办法像 Helm 一样在单独的文件中声明它?
{{ define myVar }}
the-var
{{ end }}
然后保持一种我可以在 aTmpl 和 bTmpl 中重复使用的上下文:
{{ template myVar .}}
解决方案
使用通用定义创建第三个文件:
{{define "myVar"}}
the-var
{{end}}
与其他文件一起解析该文件:
aTmpl, _ := template.ParseFiles(aFilePath, commonFilePath)
bTmpl, _ := template.ParseFiles(bFilePath, commonFilePath)
在两个模板中使用“myvar”,如下所示:
{{template "myVar" .}}
推荐阅读
- javascript - javascript - 堆栈问题?
- javascript - 从 vue.js 中的单选按钮循环中取消选中单个单选按钮
- sap-cloud-sdk - 通过 odata-generator-cli 创建 OData 客户端时出现异常
- java - 如何在 Spring MVC 中的 Redirect 中传递对象?
- html - 如何在 CSS 中打破报纸样式 3 列布局?
- php - 在 php 类中定义一个全局变量
- go - 获取 os.exec 的输出以显示执行命令的进度
- c - 访问 C 中的结构成员有多快?
- python - 如何为可以属于 A 类或 B 类的参数编写类型提示?
- c - 格式“%d”需要“int”类型的参数