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

我正在发送一个 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 运算符,比较将一个值与另一个值(或一组值)进行比较,一个值与其他值用空格隔开。但是,在这种情况下,错误似乎表明对于字段,编译器忽略了空格。


有什么办法可以使这种平等发挥作用吗?我需要编写自定义函数吗?


呼啦一阵风
浏览 306回答 1
1回答

撒科打诨

dot 遍历网络切片,因此它的类型为 *NetworkMeta。NetworkMeta 没有任何 WaveKey 字段。自定义 func 可能是您想要的,因为您正在尝试访问来自不同范围的值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go