web-dev-qa-db-ja.com

Goテンプレートで「{{」および「}}」区切り文字をエスケープするにはどうすればよいですか?

AngularJSをフロントエンドJSライブラリとして使用しています。Revelフレームワーク内のGoテンプレートを使用して、バックエンドでマークアップを生成しています。

しかし、GoとAngular use {{および}}(テンプレートの区切り文字)。 GoでエスケープしてAngularJSに渡すにはどうすればよいですか?

45
Coder1

それをエスケープする方法はわかりませんが、代わりに Delims を使用して別の区切り文字を選択できます。

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

メーリングリスト によると、これはおそらく最良のオプションです。引数は、エスケープするとテンプレートが読みにくくなるため、区切り文字をハックしようとするよりも、区切り文字を変更した方がよいでしょう。

28
beatgammit
{{"{{"}}
{{"}}"}}

作り出す

{{
}}
69
Mostafa

簡単な回避策は

{{`{{Your.Angular.Data}}`}}
39
JSNoob

Revelでは、それを処理する方法があります:

/conf/app.confに次の行を追加します。

template.delimiters = "[[]]"

デフォルトの{{}}を使用する代わりに[[]]を使用します。また、以下を使用することもできます。

template.delimiters = "{{{}}}"

したがって、revelの場合は{{{}}}を使用し、angularJSの場合は{{}}を使用します

0
Timothy Ye