我试图建立一个类似Reddit的网络论坛。有顶级帖子和答复,答复可以有答复等。通过在HTML模板中的任意数量的嵌套结构切片的范围去
一个板看起来是这样的:
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
的水平。