我希望创建一个类似Reddit的网络论坛。每个讨论主题有对应的回复,而回复也可以拥有自己的回复,以此类推。
一个讨论版块会长这样:
var board map[string]*Post
而且还有一个帖子
:
type Post struct {
Title string
Body string
ID string
PostNum int
Replies []*Post
}
我该如何使用模板来遍历嵌套的Replies
切片(请注意,每个*Post
都包含一个包含*Posts
和Replies
等内容的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>
这只允许我遍历两级回复(并且如您所见,使用了重复的代码),我需要能够遍历任意数量的回复
层级。