Vorlagenteile in Go dynamisch aktualisieren
In Go ist die Möglichkeit, einen Teil einer Vorlage zu aktualisieren, wenn eine Variable geändert wird, nicht von Natur aus vorhanden unterstützt. Um diese Funktionalität zu erreichen, muss eine benutzerdefinierte Lösung implementiert werden.
Implementierungsschritte:
Schritte im Detail:
Vorlage Refactoring:
{{define "Addresses"}} <ul> {{range $key, $value := .Addresses}} <li>{{ $key }}: {{ $value }}</li> {{end}} </ul> {{end}}
Handler-Modifikation:
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 } }
Client-Seite Implementierung:
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(); }
Alternatives Framework:
Gowut ist ein Go-Web-Framework, das ähnliche Funktionen für dynamische Teilaktualisierungen bereitstellt Webseiten.
Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Vorlagenteilchen in Go dynamisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!