【发布时间】:2017-02-22 04:40:07
【问题描述】:
我正在尝试建立一个类似于 Reddit 的网络论坛。有回复的顶级帖子,回复可以有回复等等。
板看起来像这样:
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。
【问题讨论】:
标签: templates go nested go-templates