給定一個 go html 模板物件,如何檢索原始源定義?
我在檔案中沒有看到任何功能,但必須有辦法做到這一點。
uj5u.com熱心網友回復:
該template.Template型別有一個Template.Tree匯出欄位,其中包含(模型)決議的模板。
請注意,即使此欄位已匯出,也不會匯出供您使用,而是從檔案中參考:
*parse.Tree 欄位僅匯出供 html/模板使用,并且應該被所有其他客戶端視為未匯出。
拋開這一點,有了決議樹,就可以重建構建它的源。parse.Tree有一個Root欄位,該欄位有一個String()方法,該方法從樹中構建源文本。
例如:
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 的一部分。您可以使用它,但不能保證它會保持匯出狀態,并且在未來版本中也能正常作業。您應該做的是保留您決議的來源,而不是依賴Template.Tree.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344977.html
下一篇:如何更改CSS中的選擇標記位置
