2017-01-30 11 views
0

をgolangするため、私はこのような何かに見える文字列を持っているgolang内のテンプレートがあります。挿入HTMLテンプレート

<some_html> <the_other_html/> </some_html> 

<some_html> {{ .SomeOtherHTML }} </some_html> 

を、私はこのようなものにするために出力を期待してい

しかし、その代わりに、私はこのような何か見ている:私もいくつかのJSONを挿入しようとしているが、茶をgolangエスケープされ

<some_html> &lt;the_other_html/&lt; </some_html> 

を彼らはそうではないはずの場所に"のようなものを追加します。

これは起こらずにgolangのHTMLテンプレートにどのように挿入すればよいですか?

答えて

3

あなたはtemplate.HTMLとして変数を渡す必要はなくstringとして:あなたが見ることができるように

tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`)) 
tplVars := map[string]interface{} { 
    "Html": template.HTML("<p>Paragraph</p>"), 
    "String": "<p>Paragraph</p>", 
} 
tpl.ExecuteTemplate(os.Stdout, "T", tplVars) 

//OUTPUT: <p>Paragraph</p>&lt;p&gt;Paragraph&lt;/p&gt; 

https://play.golang.org/p/QKKpQJ7gIs

は、我々がtemplate.HTMLとして渡された変数がエスケープされていませんが、渡された1 stringとしてあります。

+0

ありがとうございました! – 1N5818

関連する問題