我正在使用利用 Go 模板的Listmonk。我有一種情況,其中.Subscriber.Attribs.Pro可能存在用戶狀態 ( )的變數(如果存在,則為true或false。我只想在該值存在時顯示文本塊。
如果Pro設定了屬性,我的代碼就可以作業。然而,如果它沒有被設定,它將被處理為not ''導致一個值true。
{{ if not .Subscriber.Attribs.Pro }}
You are not a Pro user!
{{ end }}
僅當Pro屬性顯式設定為時,我如何才能運行此代碼false
uj5u.com熱心網友回復:
所以基本上你只想顯示文本 if .Subscriber.Attribs.Prois provided and is false。所以做一個比較:
{{ if eq false .Subscriber.Attribs.Pro }}
You are not a Pro user!
{{ end }}
我們可以這樣測驗:
t := template.Must(template.New("").Parse("{{ if eq false .Pro }}You are not a Pro user!\n{{ end }}"))
fmt.Println("Doesn't exist:")
if err := t.Execute(os.Stdout, nil); err != nil {
panic(err)
}
fmt.Println("Pro is false:")
m := map[string]interface{}{
"Pro": false,
}
if err := t.Execute(os.Stdout, m); err != nil {
panic(err)
}
fmt.Println("Pro is true:")
m["Pro"] = true
if err := t.Execute(os.Stdout, m); err != nil {
panic(err)
}
輸出將是(在Go Playground上嘗試):
Doesn't exist:
Pro is false:
You are not a Pro user!
Pro is true:
如您所見,{{if}}塊的主體僅在Pro顯式設定為 時才執行false。
uj5u.com熱心網友回復:
使用附帶的小枝hasKey功能:
{{if hasKey .Subscriber.Attribs "Pro"}}
{{ if not .Subscriber.Attribs.Pro }}
You are not a Pro user!
{{ end }}
{{ end }}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/404486.html
標籤:
