如何在Adobe Experience Manager(AEM)中动态更改组件名称

问题描述 投票:0回答:2

我创建了一个带有对话框的组件,在cq:action数组中,最后一个值包含静态文本,如“componentName”。

用户可以单击“编辑”以打开带有文本字段的对话框。

我的要求是将cq:action文本从“componentName”更改为“componentName - textFieldValue”。

我怎样才能做到这一点?

cq5 aem
2个回答
0
投票

由于对问题的评论表明此标签旨在配置为特定组件的静态文本。实现不同操作的ExtJs类是CQ.wcm.EditBase https://docs.adobe.com/docs/en/cq/5-6/widgets-api/index.html?class=CQ.wcm.EditBase。我没有看到任何访问者与动作交互,因为它们是静态定义的。即使例如在CQ.wcm.EditRollover类中,您也可以获得初始配置但它是只读的。您可以尝试深入了解它们的实现方式,但该名称并非旨在动态显示。

通常,您将定义一个扩展原始组件的新组件,只需更改名称即可。显然,对于大量名称值,这不能很好地扩展。


0
投票

如果您的主要目标是根据创作的值区分组件的多个实例并且与cq:actions无关,则只需在编辑模式下呈现必要的值,以便仅在创作时显示。

假设组件中的文本字段具有名称'./text',您可以执行以下操作:

<sly data-sly-test="${wcmmode.edit}">
    ${properties.text} <!-- /* Add anything else that you want to be displayed */ -->
</sly>
© www.soinside.com 2019 - 2024. All rights reserved.