Heim  >  Artikel  >  Backend-Entwicklung  >  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
WBOYnach vorne
2024-02-10 17:18:171002Durchsuche

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.

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.

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 我想渲染 > ersetzen.

Problemumgehung

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

tmpl := template.new("name").delims("<<",">>").parse(...)

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}}...

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen