【问题标题】:Sightly get Page object by path通过路径轻松获取 Page 对象
【发布时间】:2018-04-11 12:09:51
【问题描述】:

为什么以下代码在我的组件中不起作用?

<sly data-sly-test.thatPage="${pageManager.getPage @path=properties.pagePath}" data-sly-unwrap>
      <div>${thatPage.getPath}</div>
</sly>

【问题讨论】:

    标签: aem sightly htl


    【解决方案1】:

    因为您不能在 HTL 表达式中调用带有参数/参数的方法。

    在这种情况下,最好的办法是创建一个帮助程序 Use-Object(POJO 或 Sling 模型),它允许在初始化时传递路径,并具有对应于该路径的页面的 getter。

    【讨论】:

    • 是否有任何特殊的设计原因,将 PageManager 提供为隐式对象并且不允许使用参数调用其方法?
    • HTL 不允许使用参数调用方法,因为最初的设计者认为这会在模型/业务逻辑和视图/渲染模板之间实现更好的关注点分离。 AEM 中的 HTL 提供了许多全局对象,以便开发人员更轻松地访问常用属性(请参阅 helpx.adobe.com/experience-manager/htl/using/…)。然而,其中一些具有需要方法参数的 API,这些更适合传递给 Use-Objects。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2015-06-26
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    相关资源
    最近更新 更多