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

时间:2017-01-13 08:04:31

标签: cq5 aem

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

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

我的要求是更改&{34; componentName"中的cq:action文字。至 " componentName - textFieldValue"。

我该怎么做?

2 个答案:

答案 0 :(得分: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类中,您也可以获得初始配置但它是只读的。您可以尝试深入了解它们的实现方式,但不能动态显示该名称。

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

答案 1 :(得分:0)

如果您的主要目标是根据创作的值来区分组件的多个实例,而与cq:actions无关,则可以简单地在编辑模式下渲染必要的值,以仅在创作时显示。

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

<sly data-sly-test="${wcmmode.edit}">
    ${properties.text} <!-- /* Add anything else that you want to be displayed */ -->
</sly>