J'essaie de comparer la longueur d'une liste dans golang html/template. Mais il se charge pour toujours en html.
{{ $length := len .SearchData }} {{ if eq $length "0" }}
Sorry. No matching results found
{{ end }}
Quelqu'un pourrait-il m'aider avec ça?
De la documentation,
{{if pipeline}} T1 {{end}}: Si la valeur du pipeline est vide, aucune sortie n'est générée; sinon, T1 est exécuté. Les valeurs vides sont false, 0, tout pointeur nul ou valeur d'interface, et tout tableau, tranche, carte ou chaîne de longueur zéro. Le point n'est pas affecté.
Donc, si vous voulez vérifier si le .SearchData
slice/array/map est vide, utilisez simplement,
{{if not .SearchData}} Nothing to show {{end}}
Même votre code fonctionne correctement si la chaîne "0"
est remplacé par int 0
{{ $length := len .SearchData }} {{ if eq $length 0 }}
Sorry. No matching results found
{{ end }}
Une version plus courte
{{ if eq (len .SearchData) 0 }}
Sorry. No matching results found
{{ end }}
Il y a {{ else }}
pour {{ range }}
Fonctionne aussi bien pour les cartes https://play.golang.org/p/7xJ1LXL2u09 :
{{range $item := . }}
<span>{{ $item }}</span>
{{ else }}
<span>Sorry no rows here</span>
{{ end }}