1

所以我在 go 模板中有以下相等性测试

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

这应该根据文档1.2 发行说明工作,但我没有任何运气

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

4

3 回答 3

1

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

于 2014-01-23T07:10:06.730 回答
0

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

您需要导出user( User) 以使其可访问。

于 2014-01-22T14:26:36.147 回答
0

我能想到两种可能。要么您不在版本 1.2 上(go version提供了什么?),要么在管道中的某个地方,该eq函数已在模板的FuncMap中被替换。不幸的是,它没有导出,所以我想不出一个好方法来知道是否是后者。如果你没有替换它,你是否使用了修改管道的包?如果是这样,请尝试在没有任何包的情况下进行渲染,看看它是否有效。

于 2014-01-23T05:07:09.260 回答