Maison  >  Article  >  développement back-end  >  Existe-t-il un moyen d'appeler un modèle réutilisable Go dans une opération if ?

Existe-t-il un moyen d'appeler un modèle réutilisable Go dans une opération if ?

王林
王林avant
2024-02-09 09:06:091217parcourir

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

Éditeur PHP Apple est là pour répondre à une question courante : « Existe-t-il un moyen d'appeler des modèles Go réutilisables dans les opérations if ? » La réponse est oui. Dans le langage Go, nous pouvons répondre à cette exigence en utilisant une combinaison d'instructions if et de modèles. Grâce au jugement conditionnel dans l'opération if, nous pouvons appeler de manière sélective différents modèles pour obtenir un contrôle de logique métier plus flexible. Cette méthode est non seulement concise et efficace, mais également facile à lire et à maintenir. Si vous souhaitez connaître plus de conseils et de pratiques sur l'utilisation de modèles réutilisables en langage Go, continuez à lire cet article.

Contenu de la question

Je me demandais s'il existe un moyen d'utiliser la sortie d'un modèle réutilisable appelé dans une condition if, comme quelque chose comme ceci :

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

Étant donné que les modèles réutilisables peuvent être facilement utilisés dans tout le corps du modèle via l'action template, j'espère pouvoir les utiliser également dans template 操作在整个模板正文中轻松使用可重用模板,因此我希望我也可以在 if 条件中使用它。到目前为止,查看 go 模板文档,我无法找到实现此目的的方法。

解决方法

模板的输出不能用作模板内的值。您正在寻找的内容可以使用在评估模板之前传递给 template.Funcs 的附加模板函数来完成。因此,不要编写 test.tmpl conditions. En regardant la documentation du modèle Go jusqu'à présent, je ne trouve pas de moyen d'y parvenir.

🎜Solution de contournement🎜🎜La sortie d'un modèle ne peut pas être utilisée comme valeur dans le modèle. Ce que vous recherchez peut être accompli en utilisant des fonctions de modèle supplémentaires transmises à template.Funcs avant que le modèle ne soit évalué. Ainsi, au lieu d'écrire test.tmpl, écrivez une fonction Go qui renvoie une valeur et appelez cette fonction à partir du modèle. 🎜

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer