在DotLiquid中编写一个递归循环

时间:2012-09-26 02:29:49

标签: c# templates liquid dotliquid

我在DotLiquid中有这个循环:

{% for page in Page -%}
    {{ page.Title }}
    <ul>
       {% for subpage in page.Pages -%}
           <li>{{ subpage.Title }}</li>
           <!-- subpage.Pages has more pages and so on... -->
       {% endfor -%}
    </ul>
{% endfor -%}

每个subpage对象都有一个Pages属性,其中包含列表中的其他子页面(如第一个Page对象。

如何在这些子页面上编写递归迭代来创建完整的树?

1 个答案:

答案 0 :(得分:3)

将您的代码移到单独的文件中,并使用include标记。

This相关问题包括一些示例模板代码 - 它适用于Ruby版本的Liquid,但应该可以直接移植。

根据您需要执行的操作,您可以将Template.FileSystem设置为内置LocalFileSystem以解析包含,也可以创建自己的内容。有关IFileSystem的示例实现,请参阅source code for LocalFileSystem