2016-04-08 7 views
2

Bir şablon var:Golang. html/şablonu. <script>'a nasıl tırnaksız bir dize yerleştirilir?

<script type="text/template" id="data-user">{{.User}}</script> 

"Kullanıcı" URL kodlama formatında json dize olduğunda.

%7Bdata%22%3A%5B%7B%7D%7D

Ama varsayılan html/şablon gibi bir şey Ben html/template godoc reference Context {{.}} After {{.}} O'Reilly: How are &lt;i&gt;you&lt;/i&gt;? <a title='{{.}}'> O&#39;Reilly: How are you? <a href="/{{.}}"> O&#39;Reilly: How are %3ci%3eyou%3c/i%3e? <a href="?q={{.}}"> O&#39;Reilly%3a%20How%20are%3ci%3e...%3f <a onx='f("{{.}}")'> O\x27Reilly: How are \x3ci\x3eyou...? <a onx='f({{.}})'> "O\x27Reilly: How are \x3ci\x3eyou...?" <a onx='pattern = /{{.}}/;'> O\x27Reilly: How are \x3ci\x3eyou...\x3f

gelen o şeyi denedik

"%7Bdata%22%3A%5B%7B%7D%7D"

gibi o içine tırnak koymak Ama olmadı başarısı. Yardımın için teşekkür ederiz.

+1

Sanırım [bu cevap] 'a bakmalısınız (http://stackoverflow.com/questions/36382624/how-to-get-rid-of-zgotmplz-from-html-template-in-golang) –

+0

Teşekkür ederiz sen! Orada bir ipucu buldum! – im7mortal

cevap

3

Teşekkür ederiz! Çözüm buldum. template.JS türü vardır. Dizeyi template.JS'ye dönüştürdüm ve çalışıyor.

t := template.Must(template.New("").Parse(`<script>{{.}}</script>` + "\n")) 
t.Execute(os.Stdout, "%7Bdata%22%3A%5B%7B%7D%7D") 
t.Execute(os.Stdout, template.JS("%7Bdata%22%3A%5B%7B%7D%7D")) 

Çıktı:

<script>"%7Bdata%22%3A%5B%7B%7D%7D"</script> 
<script>%7Bdata%22%3A%5B%7B%7D%7D</script> 

Go Playground bu deneyin

bu örneğe bakın.