我正在使用此代码制作自定义多字段痕迹导航组件。
<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”中的单引号,则该值显示breadcrumb项的链接值。如果我在p class =“not not working”中添加单引号,则不显示任何内容。
您认为从href中的相同值中删除引号会将我的链接显示为href;但是,当我删除href值中的引号时,它会完全删除锚标记。当我重新添加它们时,我仍然可以看到锚标记,但根本没有href属性,只有breadcrumb-link类。
如何获取href值以显示链接?
答案 0 :(得分:0)
AEM在渲染生成的html之前评估al href。
如果链接无效,则不会在href
下放置任何内容如果表达式无效,它将清除所有部分
您是否使用有效链接进行了测试?
这不仅适用于纯文本。
答案 1 :(得分:0)
当我重新添加它们时,我仍然可以看到锚标记,但根本没有href属性,只有breadcrumb-link类。 - 这是预期的行为。因为你有一个链接数组,并且引号将尝试通过'textItemList.index'
键获取数组中的条目,就像在地图中一样,而不是索引。当然没有找到任何东西,因此在没有href
属性的情况下渲染锚点。
当我删除href值中的引号时,它会完全删除锚标记。 - 这不是预期的行为。既然你在段落里面说明了它的作用,那么我想这是一个显示上下文问题。根据{{3}},HTL应隐式使用uri
上下文用于href属性值,text
用于HTML元素内的内容。
尝试明确提及href="${properties.link[textItemList.index] @ context = 'uri'}"
或href="${properties.link[textItemList.index] @ context = 'text'}"
等上下文,或检查文档中提到的上下文 - unsafe
应该最终完成这项工作。
答案 2 :(得分:0)
如果我删除单引号&#34;&#39;&#34;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;它会显示href,但是由于我的href包含它,因此上述任何上下文都没有完成这项任务。
那里有解决方法吗?