Я пытаюсь создать такой веб-форум, как Reddit. Есть сообщения верхнего уровня с ответами и ответы могут иметь ответы и так далее.Диапазон через произвольное количество вложенных фрагментов структур в HTML-шаблоне в Go
Плата выглядит следующим образом:
var board map[string]*Post
и Post
:
type Post struct {
Title string
Body string
ID string
PostNum int
Replies []*Post
}
Как бы использовать шаблон для рыскать вложенными Replies
ломтиков (имея в виду, что каждый *Post
содержит Replies
ломтик, содержащий *Posts
, который содержит Replies
и т. Д.)?
То, что я до сих пор:
<div id="posts">
{{ .Title }}
{{ .Body }}
<ul>
{{ range $key, $value := .Replies }}
<li class="post">
<div class="postHead">
<div class="postTitle"><b>{{ $value.ID }}</b></div>
</div>
<div class="postBody">{{ $value.PostNum }}</div>
</li>
<ul>
{{ range $key, $value := $value.Replies }}
<li class="post">
<div class="postHead">
<div class="postTitle"><b>{{ $value.ID }}</b></div>
</div>
<div class="postBody">{{ $value.PostNum }}</div>
</li>
{{ end }}
</ul>
{{ end }}
</ul>
</div>
Это только позволяет мне рыскать два уровня ответов (и, как вы можете увидеть использование повторяющегося кода), мне нужно, чтобы иметь возможность рыскать произвольное число уровней Replies
.