ListChildren递归地输入

时间:2014-12-10 10:13:37

标签: recursion cq5 aem sling sightly

有一种Page接口方法,可以用来轻松地遍历子项。

我想以递归的方式迭代所有后续的孩子。

有一个重载方法listChildren(Filter,Boolean)可以做到这一点......如何从这个方法调用这个方法? 我的意思是如何修改上面提到的标签以递归方式进行。

1 个答案:

答案 0 :(得分:14)

您可以定义data-sly-template,这是某种宏,然后使用data-sly-call递归调用它:

<template data-sly-template.descendants="${@ page}">
    ${page.title}
    <ul data-sly-list.child="${page.listChildren}">
      <li data-sly-call="${descendants @ page=child}"></li>
    </ul>
</template>

<div data-sly-call="${descendants @ page=currentPage}" data-sly-unwrap></div>