1 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
該template.Template
類型有一個(gè)Template.Tree
導(dǎo)出字段,其中包含(模型)已解析的模板。
請(qǐng)注意,即使此字段已導(dǎo)出,也不會(huì)導(dǎo)出以供您使用,而是從文檔中引用:
*parse.Tree 字段僅被導(dǎo)出以供 html/template 使用,并且應(yīng)被所有其他客戶端視為未導(dǎo)出。
撇開這一點(diǎn)不談,有了解析樹,就可以重建構(gòu)建它的源代碼。parse.Tree
有一個(gè)Root
具有方法的字段,該String()
方法從樹中構(gòu)建源文本。
例如:
src := `Hi {{.Name}}. You are {{.Age}} years old.`
t := template.Must(template.New("").Parse(src))
fmt.Println(t.Tree.Root.String())
這將輸出(在Go Playground上嘗試):
Hi {{.Name}}. You are {{.Age}} years old.
如前所述:Template.Tree
不是公共 API 的一部分。您可以使用它,但不能保證它會(huì)保持導(dǎo)出狀態(tài),并且在未來(lái)的版本中也能正常工作。您應(yīng)該做的是保留您解析的源,而不是依賴Template.Tree
.
- 1 回答
- 0 關(guān)注
- 108 瀏覽
添加回答
舉報(bào)