使用golang模板在div中填充许多Html元素?

时间:2018-01-27 15:24:26

标签: go go-templates

我从前端收到一个带有一个或多个HTML元素的字符串的json,例如:

"textTop" : "<b>bold</b><div><i>italic</i>..."

我想使用这个字符串在div中创建Html元素,但我不确定我是否可以使用golang模板执行此操作。

type FooBar struct {
    TextTop    string
}

所以我现在将TextTop存储在一个字符串中,然后用html显示它:

        <div>
            {{.TextTop}}
        </div>

但当然这会在浏览器中产生以下结果。只是一个包含字符串的div,我正在传递: enter image description here

那么我应该在TextTop内使用Foobar struct的不同类型而不是类型字符串,哪一个?或者我可以使用golang函数从字符串中读取所有html元素并将它们作为DOM的一部分呈现在html中而不仅仅是字符串吗?

1 个答案:

答案 0 :(得分:1)

要防止转义,请将字段声明为template.HTML类型:

type FooBar struct {
    TextTop    template.HTML
}

有关使用template.HTML的安全风险的信息,请参阅链接文档。