Heim  >  Artikel  >  Backend-Entwicklung  >  Gibt es eine Möglichkeit, eine wiederverwendbare Go-Vorlage in einer if-Operation aufzurufen?

Gibt es eine Möglichkeit, eine wiederverwendbare Go-Vorlage in einer if-Operation aufzurufen?

王林
王林nach vorne
2024-02-09 09:06:091181Durchsuche

有没有办法在 if 操作中调用 Go 可重用模板?

PHP-Editor Apple ist hier, um eine häufig gestellte Frage zu beantworten: „Gibt es eine Möglichkeit, wiederverwendbare Go-Vorlagen in if-Operationen aufzurufen?“ Die Antwort lautet „Ja“. In der Go-Sprache können wir diese Anforderung erreichen, indem wir eine Kombination aus if-Anweisungen und Vorlagen verwenden. Durch die bedingte Beurteilung in der if-Operation können wir selektiv verschiedene Vorlagen aufrufen, um eine flexiblere Steuerung der Geschäftslogik zu erreichen. Diese Methode ist nicht nur prägnant und effizient, sondern auch einfach zu lesen und zu warten. Wenn Sie weitere Tipps und Vorgehensweisen zur Verwendung wiederverwendbarer Vorlagen in der Go-Sprache erfahren möchten, lesen Sie bitte diesen Artikel weiter.

Frageninhalt

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die Ausgabe einer wiederverwendbaren Vorlage zu verwenden, die in einer if-Bedingung aufgerufen wird, etwa so:

{{ define "test.tmpl" }}SomeExpectedValue{{ end }}
Header
{{/* here \/ */}}
{{- if eq (template "test.tmpl") "SomeExpectedValue" }}
The expected body: {{ template "test.tmpl" }}.
{{- else }}
Something else.
{{- end }}
Footer

Da wiederverwendbare Vorlagen über die Aktion template problemlos im gesamten Vorlagenkörper verwendet werden können, hoffe ich, dass ich sie auch unter template 操作在整个模板正文中轻松使用可重用模板,因此我希望我也可以在 if 条件中使用它。到目前为止,查看 go 模板文档,我无法找到实现此目的的方法。

解决方法

模板的输出不能用作模板内的值。您正在寻找的内容可以使用在评估模板之前传递给 template.Funcs 的附加模板函数来完成。因此,不要编写 test.tmpl Bedingungen verwenden kann. Wenn ich mir bisher die Go-Vorlagendokumentation ansehe, kann ich keinen Weg finden, dies zu erreichen.

🎜Workaround🎜🎜Die Ausgabe einer Vorlage kann nicht als Wert innerhalb der Vorlage verwendet werden. Was Sie suchen, kann mithilfe zusätzlicher Vorlagenfunktionen erreicht werden, die an template.Funcs übergeben werden, bevor die Vorlage ausgewertet wird. Anstatt also test.tmpl zu schreiben, schreiben Sie eine Go-Funktion, die einen Wert zurückgibt, und rufen Sie diese Funktion aus der Vorlage auf. 🎜

Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit, eine wiederverwendbare Go-Vorlage in einer if-Operation aufzurufen?. 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