Javascript 将灰尘模板渲染到第n个子节点

Javascript 将灰尘模板渲染到第n个子节点,javascript,templates,dust.js,Javascript,Templates,Dust.js,我从服务器接收到一个json对象,其中包含嵌套元素和n个层的树菜单数据。我需要这个,以便能够深入到它们可能有多少子元素 是否有一种方法可以使用Dust.js模板递归循环对象的子元素 这方面的一个例子是: {#assignment} {#childAssignment} {#nChildAssignment} //etc, etc, etc into the dark pits of mordor {/nChildAssign

我从服务器接收到一个json对象,其中包含嵌套元素和n个层的树菜单数据。我需要这个,以便能够深入到它们可能有多少子元素

是否有一种方法可以使用Dust.js模板递归循环对象的子元素

这方面的一个例子是:

{#assignment}
     {#childAssignment}
         {#nChildAssignment}
             //etc, etc, etc into the dark pits of mordor
         {/nChildAssignment}
     {/childAssignemnt}
{/assignment}

我建议使用分部函数,并递归调用分部函数。因此,如果您有如下的JSON:

{
  "assignment": {
    "value": "foo",
    "assignment": {
      "value": "bar",
      "assignment": {
         ...
         "assignment": {
           "value": "last one"
         }
      }
    }
  } 
}
{#assignment}
  {value}
  {?.assignment}
    {>recursive_assignment.dust}
  {/.assignment}
{/assignment}
然后,您的模板
recursive\u赋值。dust
可能如下所示:

{
  "assignment": {
    "value": "foo",
    "assignment": {
      "value": "bar",
      "assignment": {
         ...
         "assignment": {
           "value": "last one"
         }
      }
    }
  } 
}
{#assignment}
  {value}
  {?.assignment}
    {>recursive_assignment.dust}
  {/.assignment}
{/assignment}