Создание рекурсивных паролей 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 для рекурсивного рендеринга для отображения рекурсивно вложенного объекта? Спасибо!

0 ответов

Другие вопросы по тегам