Создание рекурсивных паролей Handlebars с использованием Jknack
Я использую Handlebars для рендеринга аккордеонов произвольного множества уровней иерархии. Мой POJO похож на:
@Data
@AllArgsConstructor
public class Result {
public property1;
public List<Result> children;
}
Действие моего контроллера отправляет список Result в шаблон, который выглядит следующим образом:
query.hbs:
<div id="accordion">
{{#each Results}}
<!-- cards and stuff -->
<!--accordion for children-->
{{#if children}}
<div id="accordion">
{{> query Results=children}}
</div>
{{/if}}
{{/each}}
</div>
Я получаю следующую ошибку:
org.springframework.web.util.NestedServletException: обработка запроса не удалась; Вложенное исключение - com.github.jknack.handlebars.HandlebarsException: /webapp/views/query.hbs:90:28: обнаружен бесконечный цикл, частичный "/webapp/views/query.hbs" вызывает сам себя
Я пытался установить
handlebars.setInfiniteLoops(true)
в моей конфигурации Spring, а также
setDeletePartialAfterMerge(true)
на объекте HandlebarsViewResolver, и ни один из этих параметров не оказал никакого влияния.
Я думал, что мог бы сделать свой частичный вызов на основе этого популярного примера рекурсивных парциальных рулей: http://www.boduch.ca/2014/03/recursive-list-building-with-handlebars.html
В этом примере задействованы два файла.hbs, где main сначала вызывает частичное. Это не влияет на мою проблему, так как я получаю одно и то же исключение каждый раз, когда частичный вызов сам.
Как я могу использовать основанные на Java Handlebars для рекурсивного рендеринга для отображения рекурсивно вложенного объекта? Спасибо!