>  기사  >  백엔드 개발  >  Go 템플릿에서 상위 템플릿의 데이터를 하위 템플릿으로 어떻게 전달할 수 있나요?

Go 템플릿에서 상위 템플릿의 데이터를 하위 템플릿으로 어떻게 전달할 수 있나요?

DDD
DDD원래의
2024-10-26 03:08:27119검색

How can you pass data from a parent template to a child template in Go templates?

템플릿 간 데이터 전달

귀하의 쿼리는 한 템플릿에서 다른 템플릿으로 데이터를 전달하는 것과 관련이 있습니다. 하위 템플릿(image_row.html)을 포함하는 상위 템플릿(index.html)이 있지만 추가 데이터를 하위 템플릿에 전달하려고 합니다.

템플릿의 기본 동작은 상위 템플릿 내에 정의된 데이터만 허용합니다. 아이에게 전달됩니다. 그러나 몇 가지 기술을 사용하면 목표를 달성할 수 있습니다.

여러 인수에 함수 사용

한 가지 접근 방식은 인수를 단일 인수로 집계하는 함수를 정의하는 것입니다. 슬라이스 값. 그런 다음 이 함수를 등록하고 템플릿에서 호출할 수 있습니다.

예:

import "text/template"

func args(vs ...interface{}) []interface{} { return vs }

t, err := template.New("t").Funcs(template.FuncMap{"args": args}).Parse(...)

index.html에서:

{{ template "image_row" args . 5 }}

image_row.html에서:

{{ define "image_row" }}
   Data: {{ index . 0 }} {{ index . 1 }}
{{ end }}

이렇게 하면 인덱스 함수를 사용하여 하위 템플릿의 인수에 액세스할 수 있습니다.

{{ index . 0 }} -> .
{{ index . 1 }} -> 5

다른 접근 방식

또는, 고려할 수 있는 사항은 다음과 같습니다.

  • 사용자 정의 템플릿 기능 사용: 하위 항목에 필요한 데이터를 생성하는 상위 템플릿 내에서 사용자 정의 함수를 정의합니다.
  • 구조체 또는 맵 전달: 구조체 또는 맵을 구성하여 데이터를 집계하고 이를 하위 템플릿에 전달합니다.

이러한 방식으로 데이터 전달 메커니즘을 사용자 정의하면 데이터에 대한 유연성과 제어가 가능해집니다. 템플릿 간에 데이터가 공유되는 방식

위 내용은 Go 템플릿에서 상위 템플릿의 데이터를 하위 템플릿으로 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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