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 중국어 웹사이트의 기타 관련 기사를 참조하세요!