组件对话框有一个路径字段小部件,作者可以在其中设置页面路径。在 Sightly 组件中,我想查找该页面资源并从中获取(和显示)属性。
对话框...
<linkedPathLocation jcr:primaryType="cq:Widget"
fieldLabel="Linked Path"
name="./linkedPathLocation"
xtype="pathfield"
fieldDescription="Select a page. URL, Title, Description and Image are properties of the selected page"/>
我想要使用的组件代码(实际上不是)。
<div class="row" data-sly-resource.page = "${properties.linkedPathLocation}">
<h1 >${page.title}</h1>
<p>${page.description}</p>
</div>
我的问题:Sightly 有没有办法解析和使用给定路径中的某些资源?如果没有,我可以创建一个 USE-API 类并执行以下操作...
Page page = resourceResolver.resolve("/path/to/resource").adaptTo(Page.class);
最佳答案
本质上,您想要做的是在渲染另一个资源的上下文中渲染一个资源。 data-sly-resource
似乎是合适的属性,但您应该定义另一个 Sightly ,而不是尝试将其他元素嵌套到包含 data-sly-resource
的元素中。 html 文件指示如何呈现嵌套资源。
假设您的资源类型为application/components/content/type
。在 type.html 中,您可能有以下语句
<sly data-sly-resource="${properties.linkedPathLocation} @ resourceType='application/components/content/type/subtype' />
然后,您将能够定义包含要生成的渲染的 /apps/application/components/content/type/subtype/subtype.html
,该渲染将在由你的道路。
关于aem - 给定路径,在 Sightly 中获取对资源的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886701/