编辑后嵌套组件刷新

时间:2017-04-26 11:39:55

标签: aem

这是我面临的问题,我有非常简单的组件A和B,A在组件B内部使用       使用数据狡猾资源

我可以编辑组件A,但如果我想看到我的更改应用,我需要手动刷新页面或编辑组件B.

我尝试添加cq:listener,但没有运气

<cq:listeners
    jcr:primaryType="cq:EditListenersConfig"
    afteredit="REFRESH_PAGE"
/>

这是A组件的.content.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:description="component A"
    jcr:primaryType="cq:Component"
    jcr:title="Component A"
    allowedParents="[ */*parsys]"
    componentGroup="testComponent"/>

这是我的B组件的.content.xml:

  <?xml version="1.0" encoding="UTF-8"?>
   <jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" 
   xmlns:jcr="http://www.jcp.org/jcr/1.0"
             jcr:primaryType="cq:Component"
             jcr:title="Component"
             componentGroup="testComponent"/>

这是组件A的cq:editConfig

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    cq:dialogMode="floating"
    jcr:primaryType="cq:EditConfig">
    <cq:listeners
        jcr:primaryType="cq:EditListenersConfig"
        afteredit="REFRESH_PAGE"/>
</jcr:root>

我使用的是AEM 6.2。

任何可以帮助这个的人?

由于

2 个答案:

答案 0 :(得分:1)

在组件A的cq:editConfig节点中(我理解为内部组件),您是否尝试过:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
  jcr:primaryType="cq:EditConfig">
  <cq:listeners
    jcr:primaryType="cq:EditListenersConfig"
    afteredit="REFRESH_PARENT"/>
</jcr:root>

这将在编辑组件A时强制刷新父组件B.我将此方法用于自定义布局/网格组件。

答案 1 :(得分:0)

我遇到了同样的问题,并发现最初加载页面时,在内容页面结构下未正确启动组件A(内部组件)。

例如:

/content
     -my_page
         -jcr:content
           -root
              -Component B
                +Component A (this needs to be initiate)

所以我所做的只是简单地添加了“ cq:templates ”并嵌套了“ component A ”,并使用 sling:resourceType = { String}组件路径

这种方法帮助我解决了问题:),请尝试这种方式。 cq:listener方法对我不起作用。