C# 在DotLiquid中编写递归循环
我有这个循环:C# 在DotLiquid中编写递归循环,c#,templates,liquid,dotliquid,C#,Templates,Liquid,Dotliquid,我有这个循环: {%页中的页-%} {{page.Title}} {page.Pages-%} {{子页面标题} {%endfor-%} {%endfor-%} 每个子页面对象都有一个页面属性,与列表中的其他子页面(如第一个页面对象)相同 如何在这些子页面上编写递归迭代以创建完整的树?将代码移动到单独的文件中,并使用include标记 相关问题包括一些示例模板代码——它是针对Ruby版本的Liquid,但应该是可直接移植的 根据您需要执行的操作,您可以将Template.FileSyste
{%页中的页-%}
{{page.Title}}
{page.Pages-%}
- {{子页面标题}
{%endfor-%}
{%endfor-%}
每个子页面
对象都有一个页面
属性,与列表中的其他子页面(如第一个页面
对象)相同
如何在这些子页面上编写递归迭代以创建完整的树?将代码移动到单独的文件中,并使用
include
标记
相关问题包括一些示例模板代码——它是针对Ruby版本的Liquid,但应该是可直接移植的
根据您需要执行的操作,您可以将
Template.FileSystem
设置为内置的LocalFileSystem
以解析包含,也可以创建自己的文件系统。有关IFileSystem
的示例实现,请参阅IFileSystem哦,作者本人的回答,谢谢!我真的很喜欢DotLiquid吗?:)我将实现文件系统,我不知道这一点,看看我是否能够实现。实际上,在实现LocalFileSystem后,在DotLiquid中加载模板是{%include MyTemplate%}
,而不是相关问题中列出的{{include'menu item'with menu items}
。我知道,这是Ruby版本,我只是想在这里为其他人提一下;)@Tim Jones是否可以将对象从磁盘文件传递到包含的模板?@Pitdiger是的,事实上,Marc的评论是正确的。您可以执行类似于{{include'product'with products[0]}}的操作,这将把products[0]`对象传递给product
模板。用于访问包含模板内对象的变量名是模板本身的名称,即本例中的product
。
{% 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 -%}