c# – 在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 -%}

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

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

解决方法:

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

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

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

上一篇:mysql – Django ORM – 具有不同select子句的Grouped聚合


下一篇:php – 在不杀死服务器的情况下更新用户排名的最佳方法