Javascript 递归下划线模板

Javascript 递归下划线模板,javascript,backbone.js,recursion,underscore.js,underscore.js-templating,Javascript,Backbone.js,Recursion,Underscore.js,Underscore.js Templating,我有以下类型的数组 [{ tag:'a', href:"#", title:"test", children:[{ tag:"div", id:"nested-image", children:[{ tag:"img", src:"image.jpg" }] }] }] }] 为了呈现它

我有以下类型的数组

[{
  tag:'a',
  href:"#",
  title:"test",
  children:[{
         tag:"div",
         id:"nested-image",
         children:[{
                    tag:"img",
                    src:"image.jpg"
                   }]
         }]
  }]
}]
为了呈现它,我使用下划线模板。我使用文本插件加载模板

我正在使用以下函数进行渲染

  compiledTpl: function(tpl, data) {
        var data = data || {};
        var compiled = _.template(tpl);
        return compiled(data);
    },
从其中一个模板中,我调用如下函数:

在模板内部,我正在迭代数据对象:

 <%_.each(data),function(d){%>
       <p>d.a</p>
       <p>d.b</p>
       <%if(d.children.length>0){%>
        //call same template itself
        <%= _.compiledTpl(tpl1,{'data':data} ) %>//not sure how to do that
      <%}%>
 <%}%>

d、 a

d、 b

0){%> //调用相同的模板本身 //我不知道该怎么做

如果函数调用自身并且一切正常,那么它将不会遍历第一级的所有子级,因为只有一个层次结构。它不会遍历所有子级。我想实现类似这样的功能

嘿,这应该很有用@ezpura I have nested children属性。如果我使用这种方法,它会起作用只需要一个级别就可以了,我不知道它会有多少嵌套子对象,所以我不能使用iteative apporach。这就是为什么需要递归。@ezpura我想做类似于此url的事情。您将
compiledTpl
存储在哪里?它真的是
\ucode>对象的属性吗?compiledTpl是我使用的下划线.mixin文件的一部分我正在使用