Go 템플릿에 여러 데이터 전달
Go에서 템플릿 실행을 사용하면 단일 값을 전달할 수 있지만 이 값은 복합 유형일 수 있습니다. 여러 구성 요소가 포함되어 있습니다. 이는 템플릿의 다양한 데이터 객체를 전달하고 액세스하기 위한 여러 옵션을 제공합니다.
구조체를 사용한 복합 값:
원하는 데이터를 캡슐화하는 사용자 정의 구조체 데이터 유형을 생성합니다.
type Data struct { Results []User Other []int }
데이터를 할당하고 실행 템플릿:
data := &Data{results, []int{1, 2, 3}} if err := GetTemplate("list").Execute(w, data); err != nil { // Handle error }
템플릿에서 MongoDB 결과에 {{.Results}}로, 정수 배열에 {{.Other}}로 액세스합니다.
다음을 사용하여 합성 값 지도:
또는 다음을 포함하는 지도를 만듭니다. data:
m := map[string]interface{}{ "Results": results, "Other": []int{1, 2, 3}, }
맵을 템플릿에 전달하고 점 표기법을 사용하여 데이터에 액세스합니다. 결과는 {{.Results}}, 정수 배열은 {{.Other}}입니다.
슬라이스를 사용한 복합 값:
가독성이 떨어지는 접근 방식은 다음을 포함하는 슬라이스를 사용하는 것입니다. data:
s := []interface{}{ results, []int{1, 2, 3}, }
구성 요소에 액세스하려면 템플릿 데이터를 색인화하세요. {{index . 0}} 결과 및 {{index . 1}} 정수 배열의 경우.
추가 참고 사항:
템플릿에서 액세스할 수 있으려면 데이터 유형을 내보내야 한다는 점을 기억하세요.
가독성과 유지 관리성을 향상하려면 구조체나 맵을 사용하는 것이 좋습니다.
다른 접근 방식도 있지만 실용성이 떨어집니다. 이 특정 시나리오입니다.
위 내용은 Go 템플릿에 여러 데이터 객체를 어떻게 전달할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!