web-dev-qa-db-fra.com

Comparer les chaînes dans les modèles

J'ai le modèle suivant:

{{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}}

Je passe une chaîne lorsque j'exécute le modèle.

Cependant, j'obtiens l'erreur suivante:

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

Comment comparer les chaînes dans le modèle?

22
callmekatootie

eq est une fonction , pas un opérateur. Il est appelé sous la forme: eq <x> <y> (ne pas <x> eq <y>).

Vous pouvez corriger votre modèle en déplaçant les opérandes des côtés de eq vers lui:

{{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}}
45
Tim Cooper