英文:
How do I escape “{{” and “}}” delimiters in Go templates?
问题
我正在使用AngularJS作为前端JS库,使用Revel框架中的Go模板来生成后端的标记。
但是Go和Angular都使用{{
和}}
作为模板中的分隔符。我该如何在Go中转义它们以传递给AngularJS?
英文:
I’m using AngularJS as the front-end JS library, with Go templates within Revel framework to to generate the markup on the back-end.
But both Go and Angular use {{
and }}
for delimiters in their templates. How can I escape them in Go to pass them to AngularJS?
答案1
得分: 109
{{
{{
}}
英文:
{{"{{"}}
{{"}}"}}
produces
{{
}}
答案2
得分: 62
一个简单的解决方法是使用
{{`{{你的.Angular.数据}}`}}
英文:
A simple workaround would be using
{{`{{Your.Angular.Data}}`}}
答案3
得分: 34
我不知道如何转义它,但是你可以选择使用Delims
来选择一个不同的分隔符:
func (t *Template) Delims(left, right string) *Template
根据邮件列表的说法,这可能是最好的选择。论点是,如果你转义它,你的模板将很难阅读,所以最好改变分隔符,而不是试图绕过它。
英文:
I don't know how to escape it, but you could choose a different delimiter instead using Delims
:
func (t *Template) Delims(left, right string) *Template
According to the mailing list, this is probably the best option. The argument was that if you escape it, your templates will be hard to read, so it would probably be better anyway to change the delimiter instead of trying to hack around it.
答案4
得分: -4
在Revel中,有一种处理方法:
在/conf/app.conf中,添加以下行:
template.delimiters="[[ ]]"
这将使用[[]]而不是默认的{{}},你也可以使用:
template.delimiters="{{{ }}}"
所以,对于Revel,它使用{{{ }}},对于AngularJS,它使用{{ }}。
英文:
In Revel, there is a way to handle it:
In /conf/app.conf, add this line:
template.delimiters="[[ ]]"
It will use [[]] instead of using default {{}}, you can also use:
template.delimiters="{{{ }}}"
So, for revel, it uses {{{ }}}, for angularJS, it uses {{ }}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论