是否可以在CQ对话框侦听器中获取页面属性

时间:2016-06-01 14:02:10

标签: dialog adobe listener cq5 aem

我有一页在 /内容/管理/ mycomp测试/ testpage / JCR:含量

属性

name : validated
type : boolean
value : true

是否可以在CQ对话框中获取上述属性值 我尝试了以下代码,但它没有用。

<listeners jcr:primaryType="nt:unstructured"
               beforesubmit="function(dialog) {

                var compPath = dialog.path;

                Resource res= resourceResolver.getResource(compPath);

                Node node = res.adaptTo(Node.class);

                var prop= node.getProperty('validated').getValue().getString(); 



                CQ.Ext.Msg.alert('valieded : ' + prop);
                    return false;

        }" />
}

1 个答案:

答案 0 :(得分:4)

以下代码将为您提供所需内容:

<listeners jcr:primaryType="nt:unstructured"
    beforesubmit="function(dialog) {
        var properties = CQ.shared.HTTP.eval(CQ.shared.HTTP.noCaching(dialog.path + '.-1.json'));
        var validated = properties.validated;

        CQ.Ext.Msg.alert('Validated: ' + validated);

    }" />
}

在我看来,最好将这种类型的JavaScript保存在外部文件中,该文件将包含在仅在编辑模式下显示的clientlib中。然后,您可以在对话框中调用该方法。例如:

beforesubmit="function(dialog){ foo.bar.baz(dialog); }"

如果您希望验证用户输入,有更好的方法。探索Widgets API documentation