我已经浏览了在线示例和其他拼接示例,但没有成功。
这是我的HTML
<table style="width:100%">
<tr>
<th>Source</th>
<th>Title</th>
<th>Author</th>
<th>URL</th>
</tr>
{{range .Arts}}
<tr>
<td>{{ .Source }}</td>
<td>{{ .Title }}</td>
<td>{{ .Author }}</td>
<td>{{ .URL }}</td>
</tr>
{{end}}
</table>
GO:
Source string
Author string
Title string
URL string
}
type NewsPage struct {
Header string
News string
Articles []Article
}
var Arts []Article
func newsDisplayHandler(w http.ResponseWriter, r *http.Request) {
// temp := template.Must(template.ParseFiles("layout.html"))
newsPage := NewsPage{
Header: "This is your Mostly Fake news update for " + time.Now().Format("Mon 2006-01-2"),
News: "Here's your daily dose of mostly Fake News",
Articles: Arts}
parse, _ := template.ParseFiles("newsPage.html")
parse.Execute(w, newsPage)
// temp.Execute(w, newsPage)
}
我想念什么?我的其余代码工作正常,在这里不是问题。我的问题是我无法遍历切片将其添加到HTML表中。我不知道运行时的文章数,因为我从API获取信息。
答案 0 :(得分:-1)
根据您提供的代码,该数组为空,并且如文档所示:
如果管道的值的长度为零,则不输出任何内容;
您的HTML看起来不错。
您也永远不会传递数组:
尝试:
newsPage := NewsPage{
Arts: Arts
}
代替
newsPage := NewsPage{
Articles: Arts
}