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" . }}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 线程问题判断多次进入
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致