在Go中,我们可以轻松地创建一个变量
{{- if .Bool.Var -}}
{{ $MyVar := "val" }}
{{- end -}}
我们甚至可以足够容易地创建共享摘录
{{- define "val" -}}
<p>Some shared template data</p>
{{- end -}}
我的问题 是,如何使用$MyVar
作为{{template}}
的文本值,以便我们可以做类似{ {1}},而不会引起错误,还是不可能?
答案 0 :(得分:1)
在纯Go text/template
language中(不是Go 本身,但在Go中恰好实现了一些不同),这是不可能的; first_half
调用采用文字字符串名称。
该语言最杰出的用户之一就是Kubernetes Helm部署管理器。这包括对模板语言的一些扩展。其中的一个是include
template function,它可以将任何值用作模板的名称,并生成字符串而不是立即输出模板内容(您可以将其包含在管道中,而{{ 1}})。因此,特别是在kubernetes-helm YAML文件中,您可以
{{template}}