我有一个 Item 类型的结构,其中包含 ItemFields,它是字符串类型的切片。我想有条件地打印 ItemFields 中的每个字符串,该字符串是带有锚标记的超链接。为此,我使用函数 IsHyperlink 来检查切片中的每个字符串是否应包含在锚标记中或仅打印出来。
type Item struct {
ItemFields []string
}
Run Code Online (Sandbox Code Playgroud)
我像这样循环访问 page.html 中的 ItemFields。
{{range .Items}}
<ul>
<li>
{{range .ItemFields}}
{{if .IsHyperlink .}}
<a href="{{.}}">{{.}}</a>
{{else}}
{{.}}
{{end}}
{{end}}
</li>
</ul>
{{end}}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行应用程序 IsHyperlink 时报告它“无法评估字符串类型中的字段 IsHyperlink”。
如何更改我的 go 代码以成功将超链接包装在锚标记中?
该上下文中的值.是一个字符串,而不是Item. 使用变量来引用该项目:
{{range $item := .Items}}
<tr>
<td>
{{range .ItemFields}}
{{if $item.IsHyperlink .}}
<a href="{{.}}">{{.}}</a>
{{else}}
{{.}}
{{end}}
{{end}}
</td>
</tr>
{{end}}
Run Code Online (Sandbox Code Playgroud)