Les commentaires HTML ne s'affichent pas dans les modèles Go - Résolu
Dans les applications Go, les commentaires HTML ne sont pas affichés par défaut lors de l'utilisation de modèles HTML. Cela peut entraîner des problèmes dans certains scénarios, par exemple lors de l'utilisation de la syntaxe de flux de contrôle sans conteneur de KnockoutJS. Pour résoudre ce problème, template.HTML peut être utilisé pour conserver les commentaires HTML pendant l'exécution du modèle.
Une méthode pour utiliser template.HTML consiste à définir une fonction de modèle personnalisée appelée safe(). Cette fonction prend une chaîne comme argument et la renvoie sous la forme template.HTML. En transmettant les commentaires HTML via la fonction safe(), ils peuvent être marqués comme sûrs et ne seront pas échappés ou omis lors du rendu du modèle.
Voici un exemple :
<code class="go">import ( "html/template" "os" ) func main() { t := template.Must(template.New("").Funcs(template.FuncMap{ "safe": func(s string) template.HTML { return template.HTML(s) }, }).Parse(src)) t.Execute(os.Stdout, nil) } const src = `<html><body> {{safe "<!-- This is a comment -->"}} <div>Some <b>HTML</b> content</div> </body></html>`</code>
Sortie :
<html><body> <!-- This is a comment --> <div>Some <b>HTML</b> content</div> </body></html>
Pour utiliser la fonction safe(), modifiez simplement les commentaires HTML dans le modèle pour inclure l'appel de la fonction safe(), comme ceci :
<code class="html">{{safe "<!-- Some HTML comment -->"}}</code>
Vous pouvez également utiliser le tube opérateur :
<code class="html">{{"<!-- Some HTML comment -->" | safe}}</code>
Notez que les commentaires HTML contenant des guillemets (""') doivent être échappés, comme ci-dessous :
<code class="html">{{safe "<!-- Some \"HTML\" comment -->"}}</code>
Les commentaires HTML conditionnels ne sont pas recommandés car ils peuvent interférer avec l'échappement contextuel du package html/template.
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!