我们的 idea 是为GO模板定义一个变量,该模板也是一个使用变量(嵌套模板)的模板,如下所示:
package main
import (
"os"
"text/template"
)
type Todo struct {
Name string
Description string
Subtemplate string
}
func main() {
td := Todo{
Name: "Test name",
Description: "Test description",
Subtemplate: "Subtemplate {{.Name}}",
}
t, err := template.New("todos").Parse("{{.Subtemplate}} You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"")
if err != nil {
panic(err)
}
err = t.Execute(os.Stdout, td)
if err != nil {
panic(err)
}
}
但是,上述代码的结果是:
Subtemplate {{.Name}} You have a task named "Test name" with description: "Test description"
个
表示没有解析子模板中的变量.Name
(可能在设计上是不可能的,需要某种递归调用).有没有什么/其他方法可以达到这个效果?
它也应该适用于使用template.FuncMap
定义的模板函数.谢谢.