Javascript Adobe CQ/AEM-触发器afteredit处理程序

Javascript Adobe CQ/AEM-触发器afteredit处理程序,javascript,aem,Javascript,Aem,当我在组件编辑器对话框中选择“OK”时,组件会重新绘制自身,假设我已经设置了_cq_editConfig.xml: <cq:listeners jcr:primaryType="cq:EditListenersConfig" afteredit="REFRESH_SELF"/> 我想做的是通过javascript触发“afteredit”。我遇到了一种情况,内容已经更改,作者应该有一个呈现组件的更新视图,但除了重新加载整个页面或打开和关闭编辑对话框之外,

当我在组件编辑器对话框中选择“OK”时,组件会重新绘制自身,假设我已经设置了_cq_editConfig.xml:

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

我想做的是通过javascript触发“afteredit”。我遇到了一种情况,内容已经更改,作者应该有一个呈现组件的更新视图,但除了重新加载整个页面或打开和关闭编辑对话框之外,我不知道如何做到这一点。大概可以调用由“REFRESH_SELF”常量表示的函数,但我不知道如何将该常量追溯到函数


有人知道如何从javascript触发afteredit吗?

@jwepurchase如果您只想在对话框编辑或关闭后重新加载页面,可以将“afteredit”的默认“REFRESH\u SELF”参数更改为“REFRESH\u page”。它来自OOTB,不需要编写脚本来实现此功能

<?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:actions="[text: Banner Tile,edit,delete,insert]"
cq:dialogMode="floating"
cq:disableTargeting="{Boolean}true"
jcr:primaryType="cq:EditConfig">
<cq:listeners
    jcr:primaryType="cq:EditListenersConfig"
    afterdelete="REFRESH_PAGE"
    afteredit="REFRESH_PAGE"/>
</jcr:root>


Reference->向下滚动到此页面的最后

REFRESH\u SELF常量映射到方法CQ.wcm.EditBase.refreshSelf。您可以通过使用crxde访问/libs/cq/ui/widgets/source/widgets/wcm/EditBase.Listeners.js找到它的定义。要通过javascript触发它,首先需要有可编辑对象,然后调用该方法。例如:

    var ed = CQ.WCM.getEditable('/path/to/the/object/in/page');
    ed.refreshSelf();

@jwepurchase希望使用javascript刷新组件,而不仅仅是在编辑/关闭后刷新页面。您的示例对我来说非常有用。谢谢你也让我知道代码在哪里-非常有用。