我在执行模板时传递了一个结构。在遍历属于同一结构一部分的slice变量时,无法访问struct内部的字符串变量。
我尝试在访问变量时使用$作为前缀。 我还尝试在模板本身中创建一个变量,并在范围内调用它。我看不到该新变量在范围之外但不能在内部访问。
package main
type landing_page Struct {
Login_user string
Versions_tagged []oradatabase.Tag_versions
}
package oradatabase
// partial code
type Tag_version struct {
User_id string,
Rel_name string
}
所有这些结构均已初始化并正确分配了值,因为我可以毫无问题地访问模板范围内的值。
template : landing_page.html
Trial - 1
---------
<table>
<thead><tr>
<th>h1</th>
<th>h2</th>
<th>h3</th>
</tr>
</thead>
<tbody>
{{ range .Versions_tagged}}
<tr>
<td>{{.User_id}}</td>
<td>{{.Rel_Name}}</td>
<td>{{$.Login_user}}</td>
</tr>
{{end}}
</tbody>
</table>
Trial -2
---------
{{ $login_user := .Login_user}}
<table>
<thead><tr>
<th>h1</th>
<th>h2</th>
<th>h3</th>
</tr>
</thead>
<tbody>
{{ range .Versions_tagged}}
<tr>
<td>{{.User_id}}</td>
<td>{{.Rel_Name}}</td>
<td>{{$login_user}}</td>
</tr>
{{end}}
</tbody>
</table>
通过这两个试验-即将到达内部的login_user为null(无值),而可以从外部访问。无法找出问题所在。 转到版本:1.11.4
变量Login_user的值应在模板范围内可用。控制台上没有错误。它根本不会在范围内为Login_user打印任何内容,并且循环也会在该阶段终止。