Go 웹 애플리케이션에서는 n 값에 따라 특정 HTML 줄을 여러 번 출력해야 합니다. .
이에 접근하는 방법은 다음과 같습니다.
HTML 템플릿에서 {{range}} 작업은 다음을 허용합니다. 항목을 반복합니다. 그러나 이 작업을 수행하려면 작업할 슬라이스, 배열 또는 맵이 필요합니다.
이 요구 사항을 충족하려면 다음을 수행하세요. make([]struct{}, n)와 같이 메모리가 할당되지 않은 빈 슬라이스를 전달합니다.
템플릿 코드:
<ul> {{range $idx, $e := .}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
코드 테스트:
tmpl := template.Must(template.New("").Parse(templ)) n := 5 if err := tmpl.Execute(os.Stdout, make([]struct{}, n)); err != nil { panic(err) }
출력:
<ul> <li><a href="/?page=0">0</a></li> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> </ul>
링크의 시작 인덱스를 사용자 정의하려면 특정 값으로 슬라이스를 채울 수 있습니다.
템플릿 코드:
<ul> {{range .}} <li><a href="/?page={{.}}">{{.}}</a></li> {{end}} </ul>
예시 테스트 코드:
tmpl := template.Must(template.New("").Parse(templ)) n := 5 values := make([]int, n) for i := range values { values[i] = (i + 1) * 2 } if err := tmpl.Execute(os.Stdout, values); err != nil { panic(err) }
출력:
<ul> <li><a href="/?page=2">2</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=6">6</a></li> <li><a href="/?page=8">8</a></li> <li><a href="/?page=10">10</a></li> </ul>
마침내 , 템플릿 내의 사용자 정의 기능을 사용하여 인덱스 값을 다음과 같이 수정할 수 있습니다. 필요합니다.
템플릿 코드:
<ul> {{range $idx, $e := .}}{{$idx := (Add $idx)}} <li><a href="/?page={{$idx}}">{{$idx}}</a></li> {{end}} </ul>
사용자 정의 기능:
func Add(i int) int { return i + 1 }
출력:
<ul> <li><a href="/?page=1">1</a></li> <li><a href="/?page=2">2</a></li> <li><a href="/?page=3">3</a></li> <li><a href="/?page=4">4</a></li> <li><a href="/?page=5">5</a></li> </ul>
위 내용은 템플릿을 사용하여 Go 웹 애플리케이션에서 HTML 코드를 여러 번 반복하려면 어떻게 해야 하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!