Golang html/templateのリストの長さを比較しようとしています。しかし、それはhtmlで永久にロードされます。
{{ $length := len .SearchData }} {{ if eq $length "0" }}
Sorry. No matching results found
{{ end }}
誰もこれで私を助けることができますか?
ドキュメントから、
{{if pipeline}} T1 {{end}}:パイプラインの値が空の場合、出力は生成されません。それ以外の場合、T1が実行されます。空の値は、false、0、nilポインターまたはインターフェイス値、および配列、スライス、マップ、または長さがゼロの文字列です。ドットは影響を受けません。
したがって、.SearchData
slice/array/mapは空であるだけで、
{{if not .SearchData}} Nothing to show {{end}}
文字列"0"
はint 0
{{ $length := len .SearchData }} {{ if eq $length 0 }}
Sorry. No matching results found
{{ end }}
短いバージョン
{{ if eq (len .SearchData) 0 }}
Sorry. No matching results found
{{ end }}
がある {{ else }}
ために {{ range }}
マップでも同様に機能します https://play.golang.org/p/7xJ1LXL2u09 :
{{range $item := . }}
<span>{{ $item }}</span>
{{ else }}
<span>Sorry no rows here</span>
{{ end }}