将HTML保存到golang模板变量

时间:2018-10-23 19:01:03

标签: templates go

我正在使用go-lang模板输出一些HTML。我想重复很多次HTML。因此,我使用一个变量来存储此HTML块。这是我的代码的虚拟版本:

package main

import (
    "html/template"
    "log"
    "os"
)

var tmplString = `    // content of index.html
    {{define "index"}}
    {{ $DUMMY := "{{.var1}} is equal to {{.var2}}"  }}
    {{ $DUMMY }}
    {{ $DUMMY }}
    {{end}}
`

func main() {
    tmpl, err := template.New("test").Parse(tmplString)
    if err != nil {
        log.Fatal(err)
    }
    varmap := map[string]interface{}{
        "var1": "value",
        "var2": 100,
    }
    tmpl.ExecuteTemplate(os.Stdout, "index", varmap)

}

问题在于这段代码将

{{.var1}} is equal to {{.var2}}
{{.var1}} is equal to {{.var2}}

但是我需要它来产生

value is equal to 100
value is equal to 100

如何定义变量,以便从结构中构建字符串?

1 个答案:

答案 0 :(得分:1)

您可以使用print连接模板中的字符串:

 {{ $DUMMY := (print .var1 " is equal to " .var2 )}}