Z dokumentacji
{{if rurociąg}} {{T1 end}}: Jeżeli wartość rurociągu jest pusty, nie wyjściowy jest generowany; w przeciwnym razie wykonywany jest T1. Puste wartości to: false, 0, dowolny wskaźnik zerowy lub wartość interfejsu i dowolna tablica, plaster, mapa lub ciąg o długości zero. Dot nie ma wpływu.
Więc jeśli chcesz sprawdzić, czy .SearchData
plaster/tablica/mapa jest pusta po prostu użyć,
{{if not .SearchData}} Nothing to show {{end}}
Nawet Twój kod działa poprawnie, jeśli ciąg "0"
zastępuje int 0
{{ $length := len .SearchData }} {{ if eq $length 0 }}
Sorry. No matching results found
{{ end }}
http://play.golang.org/p/Q44qyRbKRB
Z jakichś powodów '{{$ długość: = len .SearchData}} {{if eq $ długość 0}} 'nie działa w moim szablonie html. Ale '{{if not .SearchData}}' działa. Ale w niektórych scenariuszach muszę użyć 'eq' z różnymi wartościami [aby ograniczyć wyniki]. – Dany
Rozumiem, że musisz sprawdzić inne wartości. Nie mogę wymyślić, dlaczego to nie będzie działać dla Ciebie :(musi być coś poza szablonami. Czy jesteś pewien, że przekazujesz zamierzoną wartość dla 'SearchData'? –
Tak. Przekazuję wcięte wartości, ponieważ' {{if nie .SearchData}} "działa zgodnie z oczekiwaniami. Testowałem z pustą listą i listą z pewnymi wartościami – Dany