在 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
则不能)。所以具体在kubernetes-helm YAML 文件,你可以
{{ include $MyVar }}
关于go - 在 `{{ template }}` 中使用 Go Template var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53218187/