我对go,martini和马提尼如何使用模板有问题。
package main
import (
"github.com/go-martini/martini"
"github.com/martini-contrib/render"
)
type Page struct {
Caption string
Body string
Tmpl string
}
func main() {
webApp = martini.Classic()
webApp.Get("/", indexHandler)
webApp.Use(render.Renderer(render.Options{
Directory: "templates",
Layout: "layout",
Extensions: []string{".tmpl", ".html"},
Delims: render.Delims{"{{", "}}"},
Charset: "UTF-8",
IndentJSON: true}))
webApp.Run()
}
func indexHandler(r render.Render) {
var indexPage Page
indexPage.Caption = "index"
indexPage.Tmpl = "subIndex"
r.HTML(http.StatusOK, "index", indexPage)
}
如果我在index.tmpl中使用fallowing代码:
<h2>Caption{{.Caption}}</h2>
{{ .Tmpl }}
// caption工作,.Tmpl工作,并将subIndex视为字符串)
如果我在index.tmpl中使用fallowing代码:
<h2>Caption{{.Caption}}</h2>
{{ template .Tmpl }}
模板调用中出现意外错误“Tmpl” 相同的错误消息
<h2>Caption{{.Caption}}</h2>
{{ $templateName := .Tmpl }}
{{ $templateName }}
{{ template $templateName }}
subIndex.tmpl很简单
<h3>subindex</h3>
我已经使用go build构建了程序,并且盯着它,当我用localhost:3000打开浏览器时,我收到了我提到的错误。
我错过了什么?