我正在发送一个 html/模板给这个模型:
type MapModel struct {
Networks []*NetworkMeta
WaveKey string
Networks 字段由另一种类型 NetworkMeta 定义:
type NetworkMeta struct {
NetworkMetaKey string
我使用 Networks 数组生成一个 html 选择对象:
<select name="waveKey" id="waveKey">
{{range .Networks}}
<option value="{{ .NetworkMetaKey}}" {{if eq .NetworkMetaKey .WaveKey }} selected="selected" {{end}}>
{{ .NetworkMetaKey }}
</option>
{{end}}
除了“if eq”等式测试,这里的一切都有效。该测试返回错误:“WaveKey 不是结构类型 *models.NetworkMeta 的字段。”
据我了解 html/template eq 运算符,比较测试一个值与另一个值(或一组值),一个与其余值由空格分隔。然而,在这种情况下,错误似乎表明对于一个字段,编译器忽略了空格。
有什么办法可以让这种平等发挥作用吗?我需要编写自定义函数吗?
感谢您的帮助。
最佳答案
dot 遍历 Networks slice ,因此它是 *NetworkMeta 类型。 NetworkMeta 没有 WaveKey 的任何字段。
自定义函数可能是您想要的,因为您正试图从不同的范围访问值。
关于转到 html/模板 : test equality of two dot variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633256/