0

我正在使用此代码制作自定义多字段面包屑组件。

    <ul class="breadcrumb-list">
        <li class="breadcrumb-item" data-sly-repeat.textItem="${properties.text}">
            <a class="breadcrumb-link" href="${properties.link['textItemList.index']}">${textItem}</a>
            <p class="works">${properties.link[textItemList.index]}</p>
            <p class="doesn't work">${properties.link['textItemList.index']}</p>
            <span>//</span>
        </li>
    </ul>

我添加了段落元素来显示我的属性如何显示。

这是html输出:

代码输出

如果我删除 p class="works" 中的单引号,则该值将显示面包屑项目的链接值。如果我在 p class="doesn't work" 中添加单引号,则不会显示任何内容。

您会认为从 href 中的相同值中删除引号会将我的链接显示为 href;但是,当我删除 href 值中的引号时,它会完全删除锚标记。当我重新添加它们时,我仍然可以看到锚标记,但根本没有 href 属性,只有面包屑链接类。

如何获取 href 值以显示链接?

4

3 回答 3

0

AEM 在呈现结果 html 之前评估 al href。

如果链接无效,则不会在 href 下放置任何内容

如果表达式无效,它将清除所有部分

您是否使用有效链接进行了测试?

这不仅适用于纯文本。

于 2018-02-01T21:17:17.660 回答
0

当我重新添加它们时,我仍然可以看到锚标记,但根本没有 href 属性,只有面包屑链接类。- 这是预期的行为。因为您有一个链接数组,并且加上引号将尝试通过'textItemList.index'键获取数组中的条目,就像您在地图中所做的那样,而不是通过索引。当然没有找到任何东西,所以锚点是在没有href属性的情况下渲染的。

当我删除 href 值中的引号时,它会完全删除锚标记。- 这不是预期的行为。既然您在段落中举例说明了它的工作原理,那么我想这是一个显示上下文问题。根据文档uri,HTL 应该为 href 属性值和HTML 元素内的内容隐式使用上下文。text

尝试明确提及 or 之类的上下文href="${properties.link[textItemList.index] @ context = 'uri'}"href="${properties.link[textItemList.index] @ context = 'text'}"或检查文档中提到的上下文 -unsafe最终应该可以完成这项工作。

于 2018-02-02T09:00:42.957 回答
0

这些上下文都不适合我,而且我面临同样的问题,如果我删除单引号“'”,它将显示 href 就好了,但由于我的 href 包含它,所以上面提到的上下文都没有做这项工作。

有什么解决方案吗?

于 2018-02-20T17:08:35.403 回答