php小編蘋果在這里為大家解答一個常見的問題:“有沒有辦法在 if 操作中調用 Go 可重用模板?”答案是肯定的。在Go語言中,我們可以通過使用if語句和模板的結合來實現這一需求。通過if操作中的條件判斷,我們可以選擇性地調用不同的模板,從而實現更靈活的業務邏輯控制。這種方法不僅簡潔高效,而且易于閱讀和維護。如果你想了解更多關于在Go語言中使用可重用模板的技巧和實踐,那么請繼續閱讀本文。
問題內容
我想知道是否有任何方法可以使用在 if
條件中調用可重用模板的輸出,例如類似這樣的事情:
{{ define "test.tmpl" }}SomeExpectedValue{{ end }} Header {{/* here \/ */}} {{- if eq (template "test.tmpl") "SomeExpectedValue" }} The expected body: {{ template "test.tmpl" }}. {{- else }} Something else. {{- end }} Footer
登錄后復制
由于可以通過 template
操作在整個模板正文中輕松使用可重用模板,因此我希望我也可以在 if
條件中使用它。到目前為止,查看 go 模板文檔,我無法找到實現此目的的方法。
解決方法
模板的輸出不能用作模板內的值。您正在尋找的內容可以使用在評估模板之前傳遞給 template.Funcs
的附加模板函數來完成。因此,不要編寫 test.tmpl
,而是編寫一個返回值的 Go 函數,并從模板中調用該函數。