首页 > 解决方案 > AEM HTL/Sightly 在 URL 中连接字符串以在灯箱中播放视频或在新窗口中播放 PDF

问题描述

我是 Sightly 和 AEM 开发的新手,我正在尝试连接以下字符串 href 以在灯箱中播放视频或在新窗口中打开 PDF。当我试图让它发挥作用时,任何建议都将不胜感激。

 <sly data-sly-test="${details.videoPlayingOptions != 'vlp-video'}">
      <a href="${details.pagePath} || '#' || '${gatherInsight.videoLandingPagePath}?vid=${details.videoID}'" class="cta-lightbox" data-videoid="${details.videoID}" target="${details.contentType == 'PDF' ? '_blank' : '_self'}">${details.title}</a>
 </sly>

谢谢

标签: aemsightlyhtl

解决方案


在 HTL/Sightly 中不使用 || 进行字符串连接。当您的代码尝试时,这仅用于逻辑 OR

您应该使用URI 操作选项,因为它使您的代码更具可读性:

href="${details.pagePath @ fragment=gatherInsight.videoLandingPagePath, query=details.videoIDQuery, context='uri'}"

如果将查询映射添加到您的使用对象不是一个选项,您可以尝试使用以下方式连接字符串data-sly-test

data-sly-test.videoURL="${details.pagePath}#${gatherInsight.videoLandingPagePath}?vid=${details.videoID}" href="${videoURL @ context='uri'}"

推荐阅读