Error: "invalid type for comparison" in revel template
Error: "invalid type for comparison" in revel template
创建多个自定义端点后 footer.html,我最终得到了这个错误,因为不明显这不会影响应用程序的功能,只是让我很烦。
尝试过:
revel run revel_app or dev
Revel 模板执行错误
:执行 "footer.html" 时:调用 eq 时出错:比较类型无效。
{{if eq .RunMode "dev"}}
{{template "debug.html" .}}
{{end}}
</body>
</html>
当 eq
的参数之一在当前上下文中未定义或不是 "basic type" (see the last paragraph of this section)
时,就会出现您看到的错误
因此假设 footer.html
是一个 "pratial" 模板,它与使用 模板操作 调用页脚模板的其他模板关联,您需要确保传递给模板调用的上下文包含 .RunMode
值并且该值属于 基本类型 .
虽然这个问题似乎得到了回答,但仍有很多遗漏。首先问题不完整......错误是什么?我猜我们在模板 parser/executor 为 运行 时缺少 .RunMode
。 golang 模板没有最佳实践,但是,在重载模板和不维护变量字典时,这是一个常见问题。
我倾向于部署的一个策略是:
{{if eq (or .RunMode "default") "dev"}}
这样,如果 .RunMode
未分配值(无异常)或空字符串,则 eq
将使用 "default"
值。将其视为 shorthand 中的 'C'
这是一个夸张的例子。
a := runmode!=null?runmode:default
您正在将“字符串”与未知类型的变量 .RunMode
进行比较。将该变量转换为字符串怎么样?
{{if eq (.RunMode | toString) "dev"}}
创建多个自定义端点后 footer.html,我最终得到了这个错误,因为不明显这不会影响应用程序的功能,只是让我很烦。 尝试过:
revel run revel_app or dev
Revel 模板执行错误
:执行 "footer.html" 时:调用 eq 时出错:比较类型无效。
{{if eq .RunMode "dev"}}
{{template "debug.html" .}}
{{end}}
</body>
</html>
当 eq
的参数之一在当前上下文中未定义或不是 "basic type" (see the last paragraph of this section)
因此假设 footer.html
是一个 "pratial" 模板,它与使用 模板操作 调用页脚模板的其他模板关联,您需要确保传递给模板调用的上下文包含 .RunMode
值并且该值属于 基本类型 .
虽然这个问题似乎得到了回答,但仍有很多遗漏。首先问题不完整......错误是什么?我猜我们在模板 parser/executor 为 运行 时缺少 .RunMode
。 golang 模板没有最佳实践,但是,在重载模板和不维护变量字典时,这是一个常见问题。
我倾向于部署的一个策略是:
{{if eq (or .RunMode "default") "dev"}}
这样,如果 .RunMode
未分配值(无异常)或空字符串,则 eq
将使用 "default"
值。将其视为 shorthand 中的 'C'
这是一个夸张的例子。
a := runmode!=null?runmode:default
您正在将“字符串”与未知类型的变量 .RunMode
进行比较。将该变量转换为字符串怎么样?
{{if eq (.RunMode | toString) "dev"}}