使用 Dust.JS 2.7.2 到 ul/li 标记呈现对象层次结构时出现循环问题

Looping issue when rendering an object hierarchy using Dust.JS 2.7.2 to ul/li tags

我正在尝试在 Dust 2.7.2 中渲染对象结构,例如

{
   name:"Home Page",
   url: "/",
   "sub-page1": {
        name: "Sub Page 1",
        url: "/sub-page1",
        "sub-sub-page1": {
             "name": "Sub Sub Page1",
             "url": "/sub-page1/sub-sub-page1"
        }
    }
}

类似

<ul><li><a href="/">Home Page</a><ul><li><a href="/subpage1">Sub Page 1</a> ...

使用递归部分,但我似乎无法在不导致无限循环的情况下遍历可变命名对象。 我目前的尝试看起来像这样,部分调用本身:

<li>
    <a href="{url}">{name}</a>{#.}<ul>{>"components/menu/recurlist"/}</ul>{/.}
</li>

Dust 无法猜测您的嵌套上下文对象的名称,因为它每次都在变化。您确实需要在所有级别上保持相同的嵌套结构。如果绝对必要,您可以编写自定义帮助程序来解决这个问题,但这超出了这个问题的范围。

规范化数据后,您的模板将变得简单:

<ul>
  <li><a href="{url}">{name}</a>
    {#subpage}{>"components/menu/recurlist"/}{/subpage}
  </li>
</ul>