如何在Go模板中转义“{{”和“}}”分隔符?

时间:2013-07-14 17:37:37

标签: go go-templates

我正在使用AngularJS作为前端JS库,在Revel框架中使用Go模板在后端生成标记。

但Go和Angular都在其模板中使用{{}}作为分隔符。如何在Go中将它们传递给AngularJS?

4 个答案:

答案 0 :(得分:56)

{{"{{"}}
{{"}}"}}

产生

{{
}}

答案 1 :(得分:28)

一个简单的解决方法是使用

{{`{{Your.Angular.Data}}`}}

答案 2 :(得分:25)

我不知道如何逃避它,但您可以使用Delims选择不同的分隔符:

func (t *Template) Delims(left, right string) *Template

根据mailing list,这可能是最好的选择。争论的焦点是,如果你逃避它,你的模板将难以阅读,所以无论如何更改分隔符而不是试图破解它可能会更好。

答案 3 :(得分:0)

在Revel中,有一种方法可以处理它:

在/conf/app.conf中,添加以下行:

template.delimiters =“[[]]”

它将使用[[]]而不是默认的{{}},您也可以使用:

template.delimiters =“{{{}}}”

因此,对于狂欢,它使用{{{}}},对于angularJS,它使用{{}}