转到 html/模板 : test equality of two dot variables

标签 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="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/

相关文章:

windows - 系统调用 - 如何在 Go 中使用 LPWSTR?

unit-testing - 为什么 `go test -run NotExist` 通过?

http - 从 Go 到 CouchDB 的大型 PUT 请求

string - 文本/模板如何确定 map 的 "default textual representation"?

go - 为什么未关闭的 html 标记会使 html 模板无法在 go 中呈现?

xml - 根据 Go 中的 XML 模式验证 XML 文档

http - 在 Go 中添加默认的 HTTP header

go - 使用 Echo 和 html/template 如何将 HTML 传递给模板?

html - 如何在golang html/template中创建一个全局变量并在多个地方进行更改?

go - 在 html/templates 中有没有办法在所有页面上有一个恒定的页眉/页脚?