2012-11-03 91 views
4

我在Google App Engine上使用Google Go。我現在的儲蓄結構中的string描述成datastore,像這樣:Golang GAE - HTML模板未正確插入鏈接到網頁

type Foo struct{ 
    Bar string 
} 

這說明包括HTML標籤,例如:

<a href="/">Bar</a> 

我想html template包括在HTML這樣的描述文件,所以它會被解析爲html。例如:

<html><head><title>Title</title></head> 
<body>{{.Bar}}</body></html> 

被解析爲:

<html><head><title>Title</title></head> 
<body><a href="/">Bar</a></body></html> 

,而是,我得到的是這樣的:

<html><head><title>Title</title></head> 
<body>&lt;a href=&#34;/&#34;&gt;Bar&#39;s&lt;/a&gt;</body></html> 

我怎樣才能讓template正確解析string成html鏈接?

回答

5

"http/template"包會自動轉義所有字符串。要解決此問題,您必須創建類型爲template.HTML的值。例如。

import "html/template" 

type Foo struct { 
    Bar template.HTML 
} 

然後在你的代碼做這樣的事情:

Foo.Bar = template.HTML(barString) 
+0

對於第二部分 - '美孚Foo.Bar'的'[ 「酒吧」]'? – ThePiachu

+0

@ThePiachu是的,它應該是'Foo.Bar' –