多路平等测试失败

时间:2014-01-22 11:36:51

标签: templates go go-templates revel

所以我在go模板中进行了以下等式测试

{{if eq .user.Role "Manager" "Admin"}}

应根据docs1.2 release notes工作,但我没有运气

为了使它更清楚.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

3 个答案:

答案 0 :(得分:1)

好的,所以最终的解决方案是取消注释revel在template.go中的eq实现。

答案 1 :(得分:0)

http://golang.org/src/pkg/text/template/exec_test.go#L71

您需要导出userUser)才能使其可访问。

答案 2 :(得分:0)

我可以想到两种可能性。您是不是在版本1.2(go version给出了什么?)或管道中的某个地方,eq函数已替换在模板的FuncMap中。不幸的是,它没有出口,所以我想不出一个好方法来了解后者是否是这种情况。如果您还没有更换它,您使用的是修改管道的软件包吗?如果是这样,请尝试不带任何包的渲染,看看它是否有效。