> 백엔드 개발 > Golang > Go에서 템플릿 부분을 동적으로 업데이트하는 방법은 무엇입니까?

Go에서 템플릿 부분을 동적으로 업데이트하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-24 10:52:15
원래의
580명이 탐색했습니다.

How to Dynamically Update Template Partials in Go?

Go에서 템플릿 부분을 동적으로 업데이트

Go에서는 변수가 수정될 때 템플릿의 일부를 새로 고치는 기능이 본질적으로 제공되지 않습니다. 지원됩니다. 이 기능을 구현하려면 맞춤형 솔루션을 구현해야 합니다.

구현 단계:

  1. 리팩터링 템플릿: {{define "Addresses"}} 또는 {{block을 사용하여 별도의 템플릿 블록에 주소를 추가합니다. "Addresses"}}.
  2. 핸들러 수정/생성: 주소 템플릿을 독점적으로 실행하고 출력을 HTTP 응답으로 보내는 핸들러를 생성합니다. 이 핸들러는 독립적으로 사용하거나 전체 페이지 템플릿 핸들러 내에서 사용할 수 있습니다.
  3. 클라이언트 측 논리: 클라이언트 측에서는 필요할 때 주소 핸들러에 대한 AJAX 호출을 수행합니다. 표시된 주소를 업데이트하세요. Addresses 래퍼 요소의 콘텐츠를 AJAX 호출의 응답으로 바꿉니다.

세부 단계:

  1. 주형 리팩토링:

    1

    2

    3

    4

    5

    6

    7

    {{define "Addresses"}}

      <ul>

      {{range $key, $value := .Addresses}}

     <li>{{ $key }}: {{ $value }}</li>

      {{end}}

      </ul>

    {{end}}

    로그인 후 복사
  2. 핸들러 수정:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    import "net/http"

     

    func AddressesHandler(w http.ResponseWriter, r *http.Request) {

      data := map[string]string{"Addresses": []string{"Address1", "Address2"}}

      t, err := template.New("AddressesTemplate").Parse("{{define "Addresses"}}{{.Addresses}}{{end}}")

      if err != nil {

     http.Error(w, http.StatusInternalServerError.String(), http.StatusInternalServerError)

     return

      }

      err = t.ExecuteTemplate(w, "Addresses", data)

      if err != nil {

     http.Error(w, http.StatusInternalServerError.String(), http.StatusInternalServerError)

     return

      }

    }

    로그인 후 복사
  3. 클라이언트측 구현:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    var addressesElement = document.getElementById("addresses");

     

    function refreshAddresses() {

      var xhr = new XMLHttpRequest();

      xhr.open("GET", "/addresses", true);

      xhr.onreadystatechange = function() {

     if (xhr.readyState === 4 && xhr.status === 200) {

       addressesElement.outerHTML = xhr.responseText;

     }

      };

      xhr.send();

    }

    로그인 후 복사

대체 프레임워크:

Gowut는 동적 부분 업데이트에 유사한 기능을 제공하는 Go 웹 프레임워크입니다. 웹페이지.

위 내용은 Go에서 템플릿 부분을 동적으로 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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