dongshan1396 2015-01-24 08:14
浏览 108
已采纳

变量在包含的模板中不起作用(html / template)

The template "head" inserted on "index" template and use one variable {{ .Title }}

Main.go:

package main

import (
    "html/template"
    "net/http"

    "github.com/julienschmidt/httprouter"
)

var (
    t = template.Must(template.ParseGlob("templates/*.tpl"))
)

type Page struct {
    Title string
    Desc  string
}

func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    index := Page{Title: "This is title", Desc: "Desc"}
    t.ExecuteTemplate(w, "index", index)
}

func main() {
    router := httprouter.New()
    router.GET("/", Index)

    http.ListenAndServe(":8080", router)
}

Index.tpl:

{{ define "index" }}

<!DOCTYPE html>
<html lang="en">
    {{ template "head" }}
<body>
    <h1>Main info:</h1>
    Title: {{ .Title }}
    Desc: {{ .Desc }}
</body>
</html>


{{ end }}

head.tpl:

{{ define "head" }}

<head>
    <meta charset="UTF-8">
    <title>{{ .Title }}</title>
</head>

{{ end }}

I get this html:

<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <title></title>
</head>


<body>
    <h1>Main info:</h1>
    Title: This is title
    Desc: Desc
</body>
</html>

Variable {{ .Title }} works on site body, but doesn't work in head.

  • 写回答

1条回答 默认 最新

  • douliao8402 2015-01-24 08:19
    关注

    You have to pass the variables to the template:

    {{ template "head" . }}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?