AEM(cq5)处理组件内的信息

时间:2015-04-06 18:10:13

标签: javascript cq5 aem

我有一个组件,我可以在其中获得有关其父资源的一些基本信息。

var parent = granite.resource.getParent();

我现在正在尝试在我的组件附带的JavaScript中获取属性“path”(parent.path),但是数据在脚本内部不可用,但在HTML中呈现组件属性“path”可用

是否有人可以了解为什么HTML中可以使用JavaScript而不是JavaScript?

3 个答案:

答案 0 :(得分:1)

您应该可以使用currentNode.getParent().getPath();执行此操作(我已在geometrixx-outdoors / en / activities / cajamara-biking.html页面上对此进行了测试)

正如您所提到的,您可以访问许多默认对象,如下所述:http://docs.adobe.com/docs/en/aem/6-0/develop/sightly/global-objects.html

这些只是Java支持的对象(完整的类名在Description字段中)。要了解更多信息,请在Google上输入课程名称。例如,currentNode是一个javax.jcr.Node类,其中可用的方法记录在此处:http://www.day.com/specs/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html

答案 1 :(得分:0)

为了获得路径,我必须按照@Bambara的说明使用“currentNode.getParent()。path”。

var parent = currentNode.getParent();
var path = parent.path;

答案 2 :(得分:0)

我认为currentNode.getParent()。getPath()返回一个Java String对象,如果你执行var path =“”+ currentNode.getParent()。getPath();它可能无法在JavaScript中正常工作。将路径放在Javascript字符串中,不要忘记Rhino是Java对象和Javascript脚本之间的中间人,因此任何作为Bean的Java对象都可以使用.path而不是getPath()来访问,因为Rhino将进行转换。因此,当您读取.path或设置.path =“/ some / path”时,将自动调用Getters和Setter,如果此属性有setter的话。

使用JS服务器端,您可以访问整个Java对象,只需确保转换为正确的原语,以便您的数据可用。