Как выполнить итерацию в go / golang для HTML-страницы? - PullRequest
0 голосов
/ 26 марта 2019

Я просмотрел онлайн-примеры и другие примеры сращивания, но безуспешно.

Вот мой 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 голосов
/ 26 марта 2019

Из предоставленного вами кода массив пуст и, как гласит документация:

Если значение конвейера имеет нулевую длину, ничего не выводится;

Ваш HTML выглядит нормально.

Вы также никогда не передаете массив:

try:

newsPage := NewsPage{
    Arts: Arts
}

вместо

newsPage := NewsPage{
    Articles: Arts
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...