go - 在 `{{ template }}` 中使用 Go Template var

标签 go go-templates go-html-template

在 Go 中我们可以很容易地创建一个变量

{{- if .Bool.Var -}}
  {{ $MyVar := "val" }}
{{- end -}}

我们甚至可以很容易地创建共享片段

{{- define "val" -}}
  <p>Some shared template data</p>
{{- end -}}

我的问题是,我们如何使用 $MyVar 作为 {{template}} 以便我们可以执行类似 {{template $MyVar}} 的操作,而不会导致错误,或者这是不可能的?

最佳答案

中纯Go text/template language (这不是 Go 本身,而是恰好在 Go 中实现的不同东西)这是不可能的; {{template}} 调用采用文字字符串名称。

这种语言最著名的用户之一是 Kubernetes Helm部署管理器。这包括对模板语言的几个扩展。其中之一是 include template function它可以将任何值作为模板的名称,并生成一个字符串而不是立即输出模板内容(您可以将其包含在管道中,而 template 则不能)。所以具体在 YAML 文件,你可以

{{ include $MyVar }}

关于go - 在 `{{ template }}` 中使用 Go Template var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218187/

相关文章:

go - 预缓存 Golang 模板或更有效的方法

go - 如何在子目录中加载模板

go - 如何为具有公共(public)部分的多个模型渲染模板

go - 如何在 Go html 模板中迭代 map 的键和值

go - 在 Go 中将未转义的 HTML 解析为 HTML 模板

html - 提交表单时未设置内容类型

api - 如何在golang中通过重定向发送cookie?

go - 访问 slice Golang模板中的struct中的特定字段

typescript - 如何在 go 中使用 typescript

go - 如何在Go中解密使用Openssl aes-256-cbc加密的文件