L'éditeur PHP Zimo est là pour vous présenter une nouvelle technologie, à savoir comment rendre des "modèles de modèles" sans échapper à chaque opération. Au cours du processus de développement, nous utilisons souvent des moteurs de modèles pour restituer du contenu dynamique, mais lorsque nous devons utiliser la syntaxe de modèle dans les modèles, nous rencontrons souvent des problèmes d'échappement. Cet article vous donnera une réponse détaillée sur la façon de résoudre ce problème afin qu'il puisse être mieux appliqué dans le développement de projets.
Est-ce que quelqu'un sait comment utiliser le contenu de text/template
渲染“模板的模板”,其中仅渲染特定操作(即:包裹在 {{...}}
) pour que le reste soit traité sous forme de texte ?
Par exemple, étant donné le modèle suivant :
i want to render {{.foo}}. but i don't want to render anything on this line, like {{.bar}} or this template: [{{ .status | toupper }}{{ if eq .status "firing" }}:{{ .alerts.firing | len }}{{ end }}] {{ .commonlabels.alertname }} for {{ .commonlabels.job }} render {{.foo}} again.
Je souhaite afficher le résultat suivant :
I want to render foo. but I don't want to render anything on this line, like {{.Bar}} or this template: [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }} Render foo again.
Bien que je puisse utiliser {{ "{{" }}
pour échapper à chaque partie du texte que je veux, cela me semble un peu fastidieux.
Je suppose que je devrais pouvoir faire quelque chose comme 的事情我想渲染 {{template "outer" .foo}}.
并调用 tmpl.executetemplate(&buff, "outer", data)
pour restituer uniquement les opérations "externes" que je spécifie.
J'aimerais aussi savoir si le rendu des "modèles de modèles" est une odeur de code et si possible je devrais remplacer mes modèles "externes" par des chaînes/remplacements comme 我想渲染 <<.foo>>
.
Vous pouvez modifier le délimiteur du modèle de premier niveau :
tmpl := template.new("name").delims("<<",">>").parse(...)
Ensuite, écrivez le modèle comme :
I want to render <<.Foo>>. but I don't want to render anything on this line, like {{.Bar}}...
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!