Heim > Backend-Entwicklung > Golang > So rendern Sie eine „Vorlage von Vorlagen', ohne jeden Vorgang zu umgehen

So rendern Sie eine „Vorlage von Vorlagen', ohne jeden Vorgang zu umgehen

WBOY
Freigeben: 2024-02-10 17:18:17
nach vorne
1046 Leute haben es durchsucht

So rendern Sie eine „Vorlage von Vorlagen, ohne jeden Vorgang zu umgehen

Der PHP-Editor Zimo ist hier, um Ihnen eine neue Technologie vorzustellen, nämlich wie Sie „Vorlagen von Vorlagen“ rendern können, ohne jeden Vorgang zu umgehen. Während des Entwicklungsprozesses verwenden wir häufig Vorlagen-Engines zum Rendern dynamischer Inhalte. Wenn wir jedoch die Vorlagensyntax in Vorlagen verwenden müssen, stoßen wir häufig auf Fluchtprobleme. In diesem Artikel erhalten Sie eine detaillierte Antwort, wie Sie dieses Problem lösen können, damit es besser in der Projektentwicklung angewendet werden kann.

Frageninhalt

Weiß jemand, wie man den Inhalt in text/template 渲染“模板的模板”,其中仅渲染特定操作(即:包裹在 {{...}}) verwendet, damit der Rest als Text verarbeitet wird?

Zum Beispiel anhand der folgenden Vorlage:

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.
Nach dem Login kopieren

Ich möchte die folgende Ausgabe rendern:

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.
Nach dem Login kopieren

Obwohl ich {{ "{{" }} verwenden kann, um jeden gewünschten Teil des Textes zu maskieren, fühlt es sich etwas mühsam an.

Ich denke, ich sollte in der Lage sein, so etwas wie 的事情我想渲染 {{template "outer" .foo}}. 并调用 tmpl.executetemplate(&buff, "outer", data) zu tun, um nur die von mir angegebenen „externen“ Operationen zu rendern.

Ich würde auch gerne wissen, ob das Rendern von „Vorlagen von Vorlagen“ ein Codegeruch ist und wenn möglich, sollte ich meine „externen“ Vorlagen durch Zeichenfolgen/Ersetzungen wie 我想渲染 <<.foo>> ersetzen.

Problemumgehung

Sie können das Trennzeichen der Vorlage der ersten Ebene ändern:

tmpl := template.new("name").delims("<<",">>").parse(...)
Nach dem Login kopieren

Dann schreiben Sie die Vorlage wie folgt:

I want to render <<.Foo>>.

but I don't want to render anything on this line, like {{.Bar}}...
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo rendern Sie eine „Vorlage von Vorlagen', ohne jeden Vorgang zu umgehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage