我的問題可能看起來與現有問題相似,但完全不同。請詳細閱讀。
因此,我正在嘗試根據特定條件生成 2 個不同的 PDF。假設條件 A 則 PDF 有印章,否則沒有。
我有 2 個結構,即:
//no stamp
templateData := struct {
Name string
}{
Data: data,
DataDetails: dataDetailsPDF,
Name: name,
}
//with stamp
templateDataStamp := struct {
Name string
StampLink: string
}{
Data: data,
DataDetails: dataDetailsPDF,
Name: name,
StampLink: config.PDF.StampImageLink,
}
基于這兩個結構,我有這樣的條件:
pdfRequest := pdf.NewRequestPDF(config, "Body.html", "Header.html", "Footer.html")
if data.Valid == "1" {
err = pdfRequest.ParseTemplate(templateDataStamp)
if err != nil {
return nil, helper.Error(codes.Internal, tracestr, err)
}
} else {
err = pdfRequest.ParseTemplate(templateData)
if err != nil {
return nil, helper.Error(codes.Internal, tracestr, err)
}
}
在我嘗試生成沒有戳記的 PDF 之前它運行良好(else 條件),它顯示像這樣的錯誤
can't evaluate field StampLink in type struct{
Name string
}
下面是我的包含 StampLink 的 html 模板:
<img src="{{.StampLink}}" width="150px" alt="">
如果 html 模板上的 {{.StampLink}} 為空,是否有解決該錯誤的方法?
很抱歉,如果它太長,但我想解釋盡可能詳細,謝謝。
uj5u.com熱心網友回復:
您正在使用相同的模板,因此傳遞 struct 而不會StampLink導致錯誤。
如果不為空,請使用帶有所有欄位和條件的結構來呈現它。
來自檔案
{{if pipeline}} T1 {{end}}
如果 pipeline 的值為空,則不生成輸出;否則,執行 T1。空值是 false、0、任何 nil 指標或介面值,以及任何長度為零的陣列、切片、映射或字串。點不受影響。
{{ if .StampLink }} <img src="{{.StampLink}}" width="150px" alt=""> {{ end }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/450920.html
上一篇:如何使用nptile重塑陣列
下一篇:模板化函式引數的顯式模板實體化
