代码之家  ›  专栏  ›  技术社区  ›  Chris Kessel

句柄:递归树结构

  •  7
  • Chris Kessel  · 技术社区  · 11 年前

    我有一个任意深度的树结构,我想用Handlebars来显示它。我看不出有任何重复出现的方法。如果我知道深度,我想我可以硬编码它,但它可以任意深度。

    类似这样的东西,但它需要在显示儿童部分重复出现。

    {{#aNode}}
        {{id}
        {{name}}
        {{description}}
        ...spew this same template with each member of {{#children}}...
    {{/aNode}}
    

    Handlebars有迭代集合的方法,但我看不到递归到子对象中的方法

    2 回复  |  直到 8 年前
        1
  •  6
  •   Chris Kessel    11 年前

    发现您可以使用委托/嵌入文件技术来完成此操作。所以,它看起来是这样的:

    sprout_a_node.mustache(我使用的是mustache实现):

    {{#aNode}}
        {{id}
        {{name}}
        {{description}}
        {{#children}}
            {{> spew_a_node}}
        {{/children}}    
    {{/aNode}}
    
        2
  •  4
  •   AsGoodAsItGets    10 年前

    这是一篇很好的文章,jsfiddle准确地描述了如何做到这一点(这或多或少是Chris Kessel在回答中所描述的):

    http://www.boduch.ca/2014/03/recursive-list-building-with-handlebars.html