Сравнить строки в шаблонах

У меня есть следующий шаблон:

{{if . eq "login failed"}}
<span class="text-error">Incorrect username or password</span>
{{else if . eq "login success"}}
<span class="text-success">You have successfully logged in!</span>
{{end}}

Я передаю строку при выполнении шаблона.

Однако я получаю следующую ошибку:

executing "login.html" at <.>: can't give argument to non-function .

Как сравнить строки в шаблоне?

Ответ 1

eq - это функция, а не оператор. Он вызывается в форме: eq <x> <y> (не <x> eq <y>).

Вы можете исправить свой шаблон, переместив операнды со сторон eq на:

{{if eq . "login failed"}}
<span class="text-error">Incorrect username or password</span>
{{else if eq . "login success"}}
<span class="text-success">You have successfully logged in!</span>
{{end}}