1 回答
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以將 Javascript 代碼插入到<head>您創(chuàng)建 Javascript 變量的 HTML 頁(yè)面(例如,在該部分中),并使用傳遞給模板執(zhí)行的參數(shù)初始化它們。
看這個(gè)例子:
func main() {
t := template.Must(template.New("").Parse(templ))
m := map[string]interface{}{
"title": "Test page",
"username": "bob",
"counter": 12,
}
if err := t.Execute(os.Stdout, m); err != nil {
panic(err)
}
}
const templ = `<html><head>
<script>
var _title = {{.title}};
var _username = {{.username}};
var _counter = {{.counter}};
</script>
</head><body>
</body>
</html>`
這會(huì)生成一個(gè) HTML 文檔(在Go Playground上試試):
<html><head>
<script>
var _title = "Test page";
var _username = "bob";
var _counter = 12 ;
</script>
</head><body>
</body>
</html>
這意味著頁(yè)面中的其他 Javascript 代碼(內(nèi)聯(lián)或引用的,外部的)將看到變量_title,并將它們用作常規(guī)變量,并使用我們傳遞給的值初始化_username它們。_counterTemplate.Execute()
請(qǐng)注意,該html/template包執(zhí)行上下文轉(zhuǎn)義。看到它{{.title}}在引號(hào)中插入了結(jié)果,因?yàn)樗?a string,這就是它應(yīng)該用 Javascript 代碼編寫(xiě)的方式,但是在插入 的結(jié)果時(shí)沒(méi)有添加引號(hào){{.counter}},因?yàn)樗?type 的值int。
另請(qǐng)注意,您應(yīng)該使用唯一的命名策略以避免與現(xiàn)有變量或可能在其他 Javascript 代碼中使用的變量發(fā)生沖突。通常一個(gè)特殊的前綴(或后綴)會(huì)這樣做。
- 1 回答
- 0 關(guān)注
- 360 瀏覽
添加回答
舉報(bào)
