投稿に返信を表示するための再帰的なgoogleテンプレートがあり、トップの親オブジェクトにRandom
というフィールドがあり、Replies
というフィールドが含まれています。 Random
フィールドがありますが、それぞれの返信に同じRandom
フィールドを使用したいと思います。 。。より多くのコードthread
がに渡された元のオブジェクトである:私はこれをしようとするとgo htmlテンプレートの親オブジェクトから変数にアクセス
それだけで($
のみ親オブジェクトではなく、「トップ」の親オブジェクトを参照するので、私は仮定
EDIT 2件の回答深い行きます。テンプレートは、thread.Replies
は再帰的に掛けているが、thread.Random
文字列が含まれていない私は、構造体を再構築することなく、すべての子どもにグローバルに利用できるthread.Random
文字列を作りたい
type thread struct {
Random string
Body string
Title string
Replies []*reply
}
type reply struct {
Body string
Title string
Replies []*reply
}
テンプレート:。
<html>
<body>
<div id="posts">
<p>.Title</p>
<p>.Body</p>
{{define "replies"}}
<ul>
{{ range $key, $value := .Replies }}
<p>$value.Title</p>
<p>$value.Body</p>
<p>$.Random</p>
{{template "replies" . }}
</li>
{{end}}
</ul>
{{end}}
<div id="posts">
<div class="replyPost">{{ template "replies" .}}</div>
</div>
</body>
</html>
「返信」はどのように定義しますか?それはスライスか何のスライスですか?最低限の 'go'の例を追加してください。 – putu
'$'はテンプレートに渡されたものを参照します。これはテンプレートがアクセスできるものです。テンプレートが他のものへのアクセスを必要とする場合は、フィールドとして '$'から到達可能でなければなりません。オブジェクトには「親」はありません。 – Adrian