这可能是一个非常基本的问题,因为我根本不熟悉Web编程。我正在尝试使用html模板创建一个表,该模板的内容通过go脚本填充。我的问题是标签不会落在我想要的位置。这是用于html模板的html
<h1>Exchange Rate for {{.Title}}</h1>
<form action="/dateShow/react" method="POST">
<table>
<tr>
<td>From</td>
<td>To</td>
<td>Rate</td>
<td>7-day avg</td>
</tr>{{.Data}}
</table>
<div><input type="submit" value="Save"></div>
</form>
我期望GO脚本将在第一个“ tr”标签之后并在“ table”标签内打印“ data”。相反,这就是我得到的
<html><head></head><body><h1>Exchange Rate for 2018-07-02</h1>
<form action="/dateShow/react" method="POST">
<tr><td>usd</td><td>idr</td><td>15.000000</td><td>14.238334</td></tr><tr><td>usd</td><td>sgd</td><td>1.320000</td><td>1.310000</td></tr>
<table>
<tbody><tr>
<td>From</td>
<td>To</td>
<td>Rate</td>
<td>7-day avg</td>
</tr></tbody></table>
<div><input type="submit" value="Save"></div>
</form></body></html>
这真是太奇怪了,因为“标题”部分可以正常工作并到达我想要的位置。但身体并非如此
答案 0 :(得分:0)
只需将整个汇率片传递给模板,然后使用range
对其进行迭代即可。
例如,如果您的结构类似:
var ExchangeRates []ExchangeRate
type ExchangeRate struct {
From string
To string
Rate float64
SevenDayAverage float64
}
您将ExchangeRates
传递给模板,该模板可能类似于:
<table>
<tbody><tr>
<td>From</td>
<td>To</td>
<td>Rate</td>
<td>7-day avg</td>
</tr>
{{range .ExchangeRates}}
<tr>
<td>{{.From}}</td>
<td>{{.To}}</td>
<td>{{.Rate}}</td>
<td>{{.SevenDayAverage}}</td>
</tr>
{{end}}
</tbody>
</table>