栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Golang模板-如何呈现模板?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang模板-如何呈现模板?

与往常一样,该文档是一个很好的起点。

我在操场上写了一个工作实例

解释一下:

  1. 您不需要struct文字中的字符串:
    &Tags{Id: 1}
    ,而不是
    &Tags{"Id":1}
  2. 您只能将单个对象传递给模板才能执行,这将按照
    {{template <name> <arg>}}
    指令中的要求将对象分配给每个子模板。我使用了一个临时
    Page
    结构,但是
    map[string]interface{}
    如果您愿意,可以这样做。
  3. 您需要解析每个模板(我在Playground中使用了字符串,但是如果您已经有了html文件,则ParseFiles可以这样做)
  4. 我使用os.Stdout来执行它,但是显然应该用相应的替换
    ResponseWriter

以及整个代码:

package mainimport "fmt"import "html/template"import "os"var page = `<html>  <body>    {{template "tags" .Tags}}    {{template "content" .Content}}    {{template "comment" .Comment}}  </body></html>`var tags = `{{define "tags"}}<div>    {{.Name}}<div>{{end}}`var content = `{{define "content"}}<div>   <p>{{.Title}}</p>   <p>{{.Content}}</p></div>{{end}}`var comment = `{{define "comment"}}<div>    {{.Note}}</div>{{end}}`type Tags struct {   Id int   Name string}type Content struct {   Id int   Title string   Content string}type Comment struct {   Id int   Note string}type Page struct {    Tags *Tags    Content *Content    Comment *Comment}func main() {    pagedata:= &Page{Tags:&Tags{Id:1, Name:"golang"},Content: &Content{Id:9, Title:"Hello", Content:"World!"},Comment: &Comment{Id:2, Note:"Good Day!"}}    tmpl := template.New("page")    var err error    if tmpl, err = tmpl.Parse(page); err != nil {        fmt.Println(err)    }    if tmpl, err = tmpl.Parse(tags); err != nil {        fmt.Println(err)    }    if tmpl, err = tmpl.Parse(comment); err != nil {        fmt.Println(err)    }    if tmpl, err = tmpl.Parse(content); err != nil {        fmt.Println(err)    }    tmpl.Execute(os.Stdout, pagedata)}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/471074.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号