Визуально получить объект страницы по пути

Почему следующий код не работает в моем компоненте?

<sly data-sly-test.thatPage="${pageManager.getPage @path=properties.pagePath}" data-sly-unwrap>
      <div>${thatPage.getPath}</div>
</sly>
0
0
921
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Потому что вы не можете вызывать методы с аргументами / параметрами в выражениях HTL.

Лучше всего в этом случае создать вспомогательный Use-Object (POJO или Sling Model), который позволяет передавать путь при его инициализации и имеет геттер для страницы, соответствующей этому пути.

Есть ли какая-то особая причина в дизайне для предоставления PageManager как неявного объекта и запрета вызывать его методы с параметрами?

Dileepa 13.04.2018 05:50

HTL не позволяет вызывать методы с параметрами, потому что первоначальные дизайнеры считали, что это приведет к лучшему разделению проблем между моделью / бизнес-логикой и шаблоном представления / рендеринга. Ряд глобальных объектов доступен из HTL в AEM, чтобы облегчить разработчикам доступ к часто используемым свойствам (см. helpx.adobe.com/experience-manager/htl/using/…). Однако некоторые из них имеют API-интерфейсы, требующие параметров для методов, они более подходят для передачи в Use-Objects.

Vlad 16.04.2018 10:01

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