在golang中,我正在使用三个文件: index.html,nav.html和main.go
nav.html包含以下内容:
{{ define "nav" }}
<nav class="nav-container">
<h1>{{ .path }}</h1>
</nav>
{{ end }}
index.html包含以下内容:
{{ define "index" }}
{{ template "nav" }} <!-- Includes the nav.html file -->
<h1>Welcome to my website. You are visiting {{ .path }}.</h1>
{{ end }}
我正在使用Golang的template包以及Martini,这在这种情况下并不太重要。
我的main.go文件包含:
package main
import (
"net/http"
"github.com/go-martini/martini"
"github.com/martini-contrib/render"
)
func main() {
m := martiniSetup()
m.Get("/", func(res http.ResponseWriter, req *http.Request, ren render.Render, params martini.Params) {
parse := make(map[string]interface{})
parse["path"] = req.URL.Path
ren.HTML(http.StatusOK, "index", parse)
})
m.Run()
}
我的问题:
解析到.path
模板中的index
变量只能由index
模板本身访问。
我在nav
内使用{{ template "nav" }}
添加了index.html
模板。问题是,nav.html
无法访问.path变量。它只能由索引模板访问。
有没有办法让.path
变量可以访问所有包含的模板文件,在我的情况下index.html
和nav.html
?
答案 0 :(得分:2)
您可以将数据作为参数传递给嵌套模板,如下所示:dt[, .SD := lapply(.SD, function(x) paste0('"', x, '"')), .SDcols=A:B]
现在可以在{{ template "nav" . }}
块中访问该点。