【问题标题】:AEM6 - Add a component within a parsys programaticallyAEM6 - 以编程方式在 parsys 中添加组件
【发布时间】:2016-08-11 11:13:38
【问题描述】:

我有一个表格组件,每个单元格都必须有一个 parsys(以允许作者删除文本、图像等)。默认情况下,该 parsys 必须有一个定制的文本组件(内部)。

在 Sightly 中,我尝试了以下方法但没有结果:

<sly data-sly-resource="${'table-col-header-{0}' @ format=[column], resourceType='/libs/wcm/foundation/components/parsys'}">
    <sly data-sly-resource="${'table-col-header-text-{0}' @ format=[column], resourceType='/apps/componentlibrary/components/content/text'"/>
</sly>

【问题讨论】:

  • 这张表的硬编码程度如何?列和行的数量是否可配置?它真的必须在每个单元格中,还是仅在此标题列中?
  • 您的代码是否呈现任何内容? table-col-... 子资源是否存在?
  • 大家好,感谢您回来。 -3xil3:是的,列和行可在触控 UI 对话框中配置。利益相关者希望在每个单元格的 parsys 中都有文本组件,以节省编辑时间。 -Vlad:表格呈现和parsys存在,但parsys中的文本组件不存在。
  • @3xil3:是的,列和行可在触控 UI 对话框中配置。利益相关者希望在每个单元格的 parsys 中都有文本组件,以节省编辑时间
  • @Vlad:表格呈现和解析存在,但解析中的文本组件不存在。

标签: adobe aem sightly aem-6


【解决方案1】:

根据行/列的实际限制,我会选择 cq:template 节点方法或 parsys 的扩展,其中包括包含预定义组件的功能。 OOTB parsys 仅包含模板(页面模板或组件特定模板)预定义的内容

cq:template 节点方法包括在包含它应该具有的结构的组件定义下添加一个节点。这将允许您为每个单元格预定义一个文本组件(或其他内容)。但这需要对您的行和列进行有限限制。如果一个组件是通过 sidekick 添加的(我也相信 touchUI - 但不是 100% 肯定),它会将这个节点的整个结构复制到您所在的组件位置。在您的情况下,这意味着将复制每一行/列,并且会导致存储库中的节点比您实际需要的多(大多数情况下)。只要限制相当低,这种方法就可以了。请注意,如果您将此“表格”组件直接包含在另一个组件中,则此方法不起作用。

第二种方法需要您扩展 parsys 组件以使其“更智能”并提供“默认”项。这更灵活,但也受制于处理 Adob​​e 对该组件所做的更改/增强。

【讨论】:

    【解决方案2】:

    根据specificationdata-sly-include 应与脚本一起使用。

    【讨论】:

    • 对不起,我的坏事,好发现。我放错了代码。请我修改后的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2013-12-23
    • 2019-01-25
    • 2015-03-11
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多