从Sightly(AEM6)在parsys上设置emptyText

从Sightly(AEM6)在parsys上设置emptyText,aem,sightly,Aem,Sightly,在Sightly/AEM6中,当包含一个parsys组件时,如何将显示“在此处拖动组件”(cq:emptyText)的文本设置为使用本地化字符串?我有几个parsys组件作为自定义组件的子组件,每个组件都需要不同的文本(例如,此处为拖动图像组件,此处为拖动链接组件)。在CQ5.6中,我们可以执行以下操作,可能它与AEM 6一起工作: 从/libs/foundation/components/parsys继承组件 在您的组件节点下添加一个名为“new”的节点,该节点为:resourceType为

在Sightly/AEM6中,当包含一个parsys组件时,如何将显示“在此处拖动组件”(cq:emptyText)的文本设置为使用本地化字符串?我有几个parsys组件作为自定义组件的子组件,每个组件都需要不同的文本(例如,此处为拖动图像组件,此处为拖动链接组件)。

在CQ5.6中,我们可以执行以下操作,可能它与AEM 6一起工作:

  • 从/libs/foundation/components/parsys继承组件
  • 在您的组件节点下添加一个名为“new”的节点,该节点为:resourceType为foundation/components/parsys/new,或者只复制/libs/foundation/components/parsys/new
  • 将cq:emptyText属性添加到此节点,即框中显示的文本

不幸的是,在/libs/cq/gui/components/authoring/clientlibs/editor/js/model/Inspectable.js中使用特定的I18n字符串似乎是硬编码的


但是,我能够覆盖parsys控件,并将newpar的CSS类从
new section
更改为
cq占位符section
,然后在同一html元素上包含
data emptytext=“Custom text”

请参见以下代码:

<div id="myTabContent" class="tab-content" data-sly-list="${properties.titles}"> 
    <div data-sly-test.resourcePath1="${'{0}{1}' @ format=['tab',itemList.index]}" class="${itemList.index != 0 && wcmmode.isPreview ? 'tab-pane fade' : 'tab-pane fade in active'}" id="${item}">

        <div data-sly-resource="${ resourcePath1 @ resourceType='wcm/foundation/components/parsys/newpar'}" class="cq-placeholder section" data-emptytext="${item}'s content"></div>

</div>


新的Sightly parsys位于/libs/wcm/foundation/components/parsys,它的子组件位于/libs/wcm/foundation/components/parsys/newpar。不幸的是,继承这个组件和设置cq:emptyText不起作用,我想它现在存储在其他地方。您需要同时继承parsys和newpar,并且在parsys中,您需要引用您的newpar。您能发布一些代码详细信息吗?我也在尝试做同样的事情,但我还没有找到一种方法来获取“new”div的数据属性。我也遇到了类似的问题,在任何地方都找不到合适的答案后,我决定做我自己的解决方案,并写了一篇详细的博客文章来解释它: