首頁 > 後端開發 > Golang > 如何在 Go 佈局模板中渲染多個子模板?

如何在 Go 佈局模板中渲染多個子模板?

Mary-Kate Olsen
發布: 2024-12-15 05:28:08
原創
834 人瀏覽過

How to Render Multiple Child Templates within a Go Layout Template?

Go 模板:在佈局中渲染子模板

問題:

在 Golang中應用程序,如何在父佈局中渲染多個子模板template?

設定:

問題涉及四個模板:佈局模板layout.html和三個子模板:tags.html、content.html和comment。 html。提供了一個 Go 結構體來保存子模板的資料。

問題:

問題是如何渲染每個子模板並將結果組合到佈局中template.

Go實作:

渲染子範本在版面配置中,請考慮以下步驟:

  1. 解析範本字串:使用template.Parse* 函數係列將佈局和子模板字串解析為單一模板。
  2. 建立範本資料物件:建立一個將保存所有子範本值的資料物件。該物件稍後將傳遞給執行函數。
  3. 在佈局中定義並解析子模板:在佈局模板中,使用 {{template "childTemplateName"}} 指令來呼叫每個子模板。 childTemplateName 對應於子模板的 {{define "childTemplateName"}} 指令中指派的名稱。
  4. 執行佈局範本: 將範本資料物件傳遞給 Execute 函數。該函數將執行佈局模板,根據需要呼叫子模板並將它們渲染到位。

範例程式碼:

package main

import (
    "fmt"
    "html/template"
    "os"
)

// Define the layout template
const layout = `
<html>
    <body>
        {{template "tags"}}
        {{template "content"}}
        {{template "comment"}}
    </body>
</html>`

// Define the child templates
const tags = `{{define "tags"}}
<div>{{.Name}}</div>
{{end}}`

const content = `{{define "content"}}
<div>
登入後複製

以上是如何在 Go 佈局模板中渲染多個子模板?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板