GO html / template:测试两个点变量的相等性

时间:2016-04-14 20:22:56

标签: go go-html-template

我发送了这个模型的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运算符,比较测试一个值与另一个值(或一组值),一个值与其余值隔开一个空格。但是,在这种情况下,错误似乎表明对于字段,编译器会忽略该空间。

有没有办法让这种平等有效?我需要编写自定义函数吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

dot正在遍历网络片段,因此它的类型为* NetworkMeta。 NetworkMeta没有任何WaveKey字段。

自从您尝试访问不同范围的值时,自定义函数可能就是您想要的。