Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GO html/模板:测试两个点变量的相等性_Go_Go Html Template - Fatal编程技术网

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

GO html/模板:测试两个点变量的相等性,go,go-html-template,Go,Go Html Template,我正在发送此模型的html/模板: type MapModel struct { Networks []*NetworkMeta WaveKey string } Networks字段由另一种类型NetworkMeta定义: type NetworkMeta struct { NetworkMetaKey string } 我使用Networks数组生成一个html选择对象: <select name="waveKey" id="waveK

我正在发送此模型的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}}

{{range.Networks}}
{{.NetworkMetaKey}
{{end}
除了“if-eq”相等性测试,这里的一切都有效。该测试返回错误:“WaveKey不是结构类型*models.NetworkMeta的字段。”

根据我对html/template eq操作符的理解,比较测试一个值与另一个值(或一组值)的比较,该值与其余值之间用空格隔开。然而,在本例中,错误似乎表明对于字段,编译器忽略了空格

有没有办法让这种平等发挥作用?我需要写一个自定义函数吗


感谢您的帮助。

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


自定义func可能是您想要的,因为您试图从不同的作用域访问值。

两个字段必须位于同一个结构中(是的,即使您迭代来自父级的切片)。据我所知,没有其他方法可以做到这一点。啊……这很有帮助。事实上,快速搜索发现了这样一种想法,即美元符号回到“上一个”点,这样就可以工作:{{if eq.NetworkMetaKey$.WaveKey}}。。。{{end}