web-dev-qa-db-ja.com

テンプレート内の文字列を比較する

次のテンプレートがあります。

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

テンプレート内の文字列を比較するにはどうすればよいですか?

22
callmekatootie

eq is function 、演算子ではありません。 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}}
45
Tim Cooper