如何在范围内的Golang模板中显示变量

时间:2019-01-01 20:18:48

标签: templates go gin

我在服务器上有一些代码:

...
c.HTML(http.StatusOK, "videos.html", gin.H{
    "files": files, //slice
    "errMessage": errMessage,
})
...

我在客户端上有一些代码:

...
{{ range .files }}
<tr>
  <td>{{.}}</td>
  <td><a href="/download?filename={{.}}" style="color:blue;">Download</a></td>
  <td><a href="/delete?filename={{.}}" style="color:red;">Delete</a></td>
  <td><button id="{{.}}">Посмотреть</button></td>
  {{ if .errMessage }} <td style="color:red;">Processing...</td>
  {{ else }} <td>Done</td> {{ end }}
</tr>
{{ end }}
...

如何处理.errMessage?

1 个答案:

答案 0 :(得分:1)

您可以显示什么是错误消息吗?我推断出您的.errMessage超出了{{ range .files }}语法的范围。

因此,要解决此问题,只需在.errMessage语法之上声明{{ range .files }}

尽管不必在顶部声明它,但主要要点是您应该将.errMessage分配给模板内的另一个变量。

它看起来像这样(根据您的示例):

...
{{ $errMessage := .errMessage }}

{{ range .files }}
<tr>
  <td>{{.}}</td>
  <td><a href="/download?filename={{.}}" style="color:blue;">Download</a></td>
  <td><a href="/delete?filename={{.}}" style="color:red;">Delete</a></td>
  <td><button id="{{.}}">Посмотреть</button></td>
  {{ if $errMessage }} <td style="color:red;">Processing...</td>
  {{ else }} <td>Done</td> {{ end }}
</tr>
{{ end }}
...

希望有帮助!干杯!