比较模板中的字符串
Compare strings in templates
我有以下模板:
{{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 .
如何比较模板中的字符串?
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}}
比较两个字符串是否相等:
{{ if eq .Status "Approved" }}
...Do something
{{ else }}
...Do something else
{{ end }}
比较两个字符串是否不相等:
{{ if ne .Status "" }} // If status is not empty
...Do something
{{ else }}
...Do something else
{{ end }}
这里有更多的 golang HTML 模板指令:https://pkg.go.dev/text/template#hdr-Actions
我有以下模板:
{{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 .
如何比较模板中的字符串?
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}}
比较两个字符串是否相等:
{{ if eq .Status "Approved" }}
...Do something
{{ else }}
...Do something else
{{ end }}
比较两个字符串是否不相等:
{{ if ne .Status "" }} // If status is not empty
...Do something
{{ else }}
...Do something else
{{ end }}
这里有更多的 golang HTML 模板指令:https://pkg.go.dev/text/template#hdr-Actions