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