我有一页在 /内容/管理/ 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;
}" />
}
答案 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。