golang html模板格式不正确

时间:2018-10-29 05:57:25

标签: html go go-html-template

这可能是一个非常基本的问题,因为我根本不熟悉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">
&lt;tr&gt;&lt;td&gt;usd&lt;/td&gt;&lt;td&gt;idr&lt;/td&gt;&lt;td&gt;15.000000&lt;/td&gt;&lt;td&gt;14.238334&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;usd&lt;/td&gt;&lt;td&gt;sgd&lt;/td&gt;&lt;td&gt;1.320000&lt;/td&gt;&lt;td&gt;1.310000&lt;/td&gt;&lt;/tr&gt;
<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>

这真是太奇怪了,因为“标题”部分可以正常工作并到达我想要的位置。但身体并非如此

1 个答案:

答案 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>