Maison >développement back-end >Golang >Comment mettre à jour dynamiquement les partiels de modèles dans Go ?
Mettre à jour dynamiquement les partiels d'un modèle dans Go
Dans Go, la possibilité d'actualiser une partie d'un modèle lorsqu'une variable est modifiée n'est pas intrinsèque soutenu. Pour obtenir cette fonctionnalité, une solution personnalisée doit être implémentée.
Étapes de mise en œuvre :
Étapes détaillées :
Modèle Refactoring :
{{define "Addresses"}} <ul> {{range $key, $value := .Addresses}} <li>{{ $key }}: {{ $value }}</li> {{end}} </ul> {{end}}
Modification du gestionnaire :
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 } }
Côté client Implémentation :
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(); }
Cadre alternatif :
Gowut est un framework Web Go qui fournit des fonctionnalités similaires pour les mises à jour partielles dynamiques dans pages Web.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!