Golang嵌套菜单重复

时间:2018-08-11 18:56:46

标签: templates go menu nested

我在将嵌套菜单打印到模板时遇到问题。这就是我得到的 how look right now

  {{range $cat := .}}
  {{if eq $cat.Parent 0}}
  <p>{{$cat.Name}}</p>
  {{end}}

  {{ $a := ima $cat.ID}}
    {{template "childs" $a}}
  {{end}}
   {{define "childs"}}
    {{if .}}
  <ul>
    {{range . }}
    <li class="post">
      <div class="postHead">
        <div class="postTitle">
          <b>{{.Name}}</b>
        </div>
      </div>

      {{ $a := ima .ID}}
    {{template "childs" $a}}
  {{end}}
    </li>
    {{end}}
  </ul>
  {{end}}

我只是不知道如何跳过重复项,我尝试了各种if条件,但没有成功,功能ima只是返回我通过的具有父ID的类别

这是ima函数

func ima(id uint) []*Category {
    categories := []Category{}
    db.Where("parent = ?", id).Find(&categories)
return categories
}

这是呈现我的模板的函数

func omg(w http.ResponseWriter, r *http.Request) {
    categories := []Category{}
    db.Find(&categories)
    t, err := template.New("omg.html").Funcs(template.FuncMap{
        "ima": ima,

    }).ParseFiles("templates/omg.html")
    if err != nil {
        fmt.Printf("%v", err)
    }
    if err := t.Execute(w ,categories); err != nil {
        fmt.Println(err)
    }


}

0 个答案:

没有答案