日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame模板引擎-模板布局

?gview?模板引擎支持兩種?layout?模板布局方式:

  • ?define+ ?template?方式
  • ?include?模板嵌入方式

這兩種方式均支持對(duì)模板變量的傳入。

define + template

由于?gview?底層采用了?ParseFiles?方式批量解析模板文件,因此可以使用?define?標(biāo)簽定義模板內(nèi)容塊,通過(guò)?template?標(biāo)簽在其他任意的模板文件中引入指定的模板內(nèi)容塊。?template?標(biāo)簽支持跨模板引用,也就是說(shuō)?define?標(biāo)簽定義的模板內(nèi)容塊可能是在其他模板文件中,?template?也可以隨意引入。

注意,為嵌套的子模板傳遞模板變量時(shí),應(yīng)當(dāng)使用:?{{template "xxx" .}}? 的語(yǔ)法。

使用示例:

  • ?layout.html?
 
 
 
     GOFrame Layout
     {{template "header" .}}
 
 
     
{{template "container" .}}
  • ?header.html?
 {{define "header"}}
     

{{.header}}

{{end}}
  • ?container.html?
 {{define "container"}}
 

{{.container}}

{{end}}
  • ?footer.html?
 {{define "footer"}}
 

{{.footer}}

{{end}}
  • ?main.go?
 package main

 import (
     "github.com/gogf/gf/v2/frame/g"
     "github.com/gogf/gf/v2/net/ghttp"
 )

 func main() {
     s := g.Server()
     s.BindHandler("/", func(r *ghttp.Request) {
         r.Response.WriteTpl("layout.html", g.Map{
             "header":    "This is header",
             "container": "This is container",
             "footer":    "This is footer",
         })
     })
     s.SetPort(8199)
     s.Run()
 }

執(zhí)行后,訪問(wèn) http://127.0.0.1:8199 結(jié)果如下:

include模板嵌入

當(dāng)然我們也可以使用?include?標(biāo)簽來(lái)實(shí)現(xiàn)頁(yè)面布局。

注意,為嵌套的子模板傳遞模板變量時(shí),應(yīng)當(dāng)使用:?{{include "xxx" .}}? 的語(yǔ)法。

使用示例:

  • ?layout.html?
 {{include "header.html" .}}
 {{include .mainTpl .}}
 {{include "footer.html" .}}

  • ?header.html?
 

HEADER

  • ?footer.html?
 

FOOTER

  • ?main1.html?
 

MAIN1

  • ?main2.html?
 

MAIN2

  • ?main.go?
 package main

 import (
     "github.com/gogf/gf/v2/frame/g"
     "github.com/gogf/gf/v2/net/ghttp"
 )

 func main() {
     s := g.Server()
     s.BindHandler("/main1", func(r *ghttp.Request) {
         r.Response.WriteTpl("layout.html", g.Map{
             "mainTpl": "main/main1.html",
         })
     })
     s.BindHandler("/main2", func(r *ghttp.Request) {
         r.Response.WriteTpl("layout.html", g.Map{
             "mainTpl": "main/main2.html",
         })
     })
     s.SetPort(8199)
     s.Run()
 }

執(zhí)行后,訪問(wèn)不同的路由地址,將會(huì)看到不同的結(jié)果:

  • http://127.0.0.1:8199/main1

  • http://127.0.0.1:8199/main2

分享名稱(chēng):創(chuàng)新互聯(lián)GoFrame教程:GoFrame模板引擎-模板布局
當(dāng)前鏈接:http://www.dlmjj.cn/article/cdeosje.html