>백엔드 개발 >Golang >Go 레이아웃 템플릿 내에서 여러 하위 템플릿을 렌더링하는 방법은 무엇입니까?

Go 레이아웃 템플릿 내에서 여러 하위 템플릿을 렌더링하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 05:28:08835검색

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

Go 템플릿: 레이아웃 내에서 하위 템플릿 렌더링

질문:

Golang에서 응용 프로그램, 상위 레이아웃 내에서 여러 하위 템플릿을 렌더링하려면 어떻게 해야 합니까? 템플릿?

설정:

문제는 4개의 템플릿(레이아웃 템플릿 레이아웃.html)과 3개의 하위 템플릿(tag.html, content.html 및 comment)과 관련됩니다. html. 하위 템플릿에 대한 데이터를 저장하기 위해 Go 구조체가 제공됩니다.

문제:

각 하위 템플릿을 렌더링하고 결과를 레이아웃에 결합하는 방법에 대한 질문이 발생합니다. template.

구현 이동:

하위 템플릿을 렌더링하려면 레이아웃 내에서 다음 단계를 고려하십시오.

  1. 템플릿 문자열 구문 분석: template.Parse* 함수 계열을 사용하여 레이아웃 및 하위 템플릿 문자열을 단일 템플릿으로 구문 분석합니다.
  2. 템플릿 데이터 개체 생성: 모든 하위 템플릿에 대한 값을 보유할 데이터 개체를 생성합니다. 이 객체는 나중에 Execute 함수로 전달됩니다.
  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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.