Golang从包含的模板中访问模板变量[重复]

This question already has an answer here:

In golang, I am working with three files: index.html, nav.html and main.go

nav.html contains the following:

{{ define "nav" }}
  <nav class="nav-container">
    <h1>{{ .path }}</h1>
  </nav>
{{ end }}

index.html contains the following:

{{ define "index" }}
  {{ template "nav" }} <!-- Includes the nav.html file -->

  <h1>Welcome to my website. You are visiting {{ .path }}.</h1>
{{ end }}

I am using Golang's template package along with Martini which is not too important in this case.

My main.go file contains:

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()
}

My problem:

The .path variable being parsed into the index template is only accessable by the index template itself.

I include the nav template using {{ template "nav" }} inside index.html. The issue is, nav.html cannot access the .path variable. It is only accessable by the index template.

Is there any way to make the .path variable accessable to all included template files, in my case index.html and nav.html?

</div>

You can pass the data to the nested template as an argument like this: {{ template "nav" . }} Now the dot will be accessible within the define "nav" block.