如何遍历go / golang中HTML页面的拼接?

时间:2019-03-26 16:05:31

标签: html go

我已经浏览了在线示例和其他拼接示例,但没有成功。

这是我的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获取信息。

1 个答案:

答案 0 :(得分:-1)

根据您提供的代码,该数组为空,并且如文档所示:

  

如果管道的值的长度为零,则不输出任何内容;

您的HTML看起来不错。

您也永远不会传递数组:

尝试:

newsPage := NewsPage{
    Arts: Arts
}

代替

newsPage := NewsPage{
    Articles: Arts
}