所以我在 go 模板中有以下相等性测试
{{if eq .user.Role "Manager" "Admin"}}
为了更清楚 .user.Role "Manager" 可以工作,或者任何只涉及一个参数的相等测试。所以像
{{if eq 1 1}}
正确评估的东西,但{{if eq 1 2 1}}
没有。
我得到的错误是3: executing ".../index.html" at : wrong number of args for eq: want 2 got 3
好的,所以最终的解决方案是取消注释 revel 在template.go中的 eq 实现。
http://golang.org/src/pkg/text/template/exec_test.go#L71
您需要导出user
( User
) 以使其可访问。
我能想到两种可能。要么您不在版本 1.2 上(go version
提供了什么?),要么在管道中的某个地方,该eq
函数已在模板的FuncMap中被替换。不幸的是,它没有导出,所以我想不出一个好方法来知道是否是后者。如果你没有替换它,你是否使用了修改管道的包?如果是这样,请尝试在没有任何包的情况下进行渲染,看看它是否有效。