我发送了这个模型的html /模板:
type MapModel struct {
Networks []*NetworkMeta
WaveKey string
}
“网络”字段由另一种类型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}}
这里的一切都有效,除了&#34;如果eq&#34;平等测试。该测试返回错误:&#34; WaveKey不是结构类型* models.NetworkMeta的字段。&#34;
据我了解html / template eq运算符,比较测试一个值与另一个值(或一组值),一个值与其余值隔开一个空格。但是,在这种情况下,错误似乎表明对于字段,编译器会忽略该空间。
有没有办法让这种平等有效?我需要编写自定义函数吗?
感谢您的帮助。
答案 0 :(得分:1)
dot正在遍历网络片段,因此它的类型为* NetworkMeta。 NetworkMeta没有任何WaveKey字段。
自从您尝试访问不同范围的值时,自定义函数可能就是您想要的。