> 백엔드 개발 > Golang > Go의 html/template 패키지를 사용하여 HTML 템플릿에 있는 지도 요소의 구조체 필드에 액세스하는 방법은 무엇입니까?

Go의 html/template 패키지를 사용하여 HTML 템플릿에 있는 지도 요소의 구조체 필드에 액세스하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-24 07:34:30
원래의
357명이 탐색했습니다.

How to Access Struct Fields of Map Elements in HTML Templates Using Go's html/template Package?

HTML/템플릿의 Go 패키지에서 맵 요소의 구조체 필드 검색

상황:

구조체를 값으로 사용하는 구조체와 맵이 있습니다. html/template 패키지를 사용하여 렌더링된 HTML 페이지 내의 구조체 필드에 액세스하려고 합니다.

해결책:

템플릿 내의 구조체 필드에 대한 액세스를 활성화하려면, 내보내야 합니다. 필드를 내보내면 이름이 대문자로 시작됩니다.

자세한 설명:

<code class="go">type Task struct {
   cmd string
   args []string
   Desc string // Exported field
}</code>
로그인 후 복사

설명에서 대문자 'D'를 확인하세요.

마찬가지로 맵 및 템플릿 참조를 업데이트합니다.

<code class="go">var taskMap = map[string]Task{
    "find": Task{
        cmd: "find",
        args: []string{"/tmp/"},
        Desc: "find files in /tmp dir",
    },
    "grep": Task{
        cmd: "grep",
        args:[]string{"foo","/tmp/*", "-R"},
        Desc: "grep files match having foo",
    },
}</code>
로그인 후 복사
<code class="html">{{range $key, $value := .}}
   <li>Task Name:        {{$key}}</li>
   <li>Task Value:       {{$value}}</li>
   <li>Task description: {{$value.Desc}}</li>
{{end}}</code>
로그인 후 복사

결과:

출력에는 각 작업에 대한 설명 필드가 포함됩니다.

<code class="html"><html>

<li>Task Name:        find</li>
<li>Task Value:       {find [/tmp/] find files in /tmp dir}</li>
<li>Task description: find files in /tmp dir</li>

<li>Task Name:        grep</li>
<li>Task Value:       {grep [foo /tmp/* -R] grep files match having foo}</li>
<li>Task description: grep files match having foo</li>

</html></code>
로그인 후 복사

참고: 이 솔루션은 전체 구조체를 내보내므로 특정 필드만 필요한 경우 정의된 템플릿 기능을 사용하는 것이 좋습니다.

위 내용은 Go의 html/template 패키지를 사용하여 HTML 템플릿에 있는 지도 요소의 구조체 필드에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿