AEM(cq5)处理组件内的信息
我有一个组件可以获取有关其父资源的一些基本信息。AEM(cq5)处理组件内的信息
var parent = granite.resource.getParent();
我现在试图在伴随我的组件的JavaScript内获取属性“path”(parent.path),但是该数据在脚本内部不可用,但在呈现组件的属性“path”的HTML内可用。
有人能说明为什么它可能在HTML内而不是JavaScript内?
你应该能够currentNode.getParent().getPath();
做到这一点
至于你提到(我对geometrixx,户外/ EN /活动/ cajamara-biking.html页面测试这个),您可以访问很多默认对象,这里提到:http://docs.adobe.com/docs/en/aem/6-0/develop/sightly/global-objects.html。
这些只是Java支持的对象(完整的类名称在说明字段中)。要了解更多信息,请使用Google的课程名称。例如,currentNode是一个javax.jcr.Node类,其中提供的方法记录在这里:http://www.day.com/specs/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html
为了获得路径,我不得不使用“currentNode.getParent().path”per @ Bambara的说明。
var parent = currentNode.getParent();
var path = parent.path;
我认为currentNode.getParent()。getPath()返回可能无法工作的Java String对象如果你做了一个var path =“”+ currentNode.getParent()。getPath();将路径放在一个Javascript字符串中,不要忘记Rhino是你的Java对象和Javascript脚本之间的中间人,所以任何作为Bean的Java对象都可以使用.path而不是getPath()来访问,因为Rhino会进行转换。所以当你读取.path或者设置.path =“/ some/path”时,Getters和Setters会自动调用,当然这个属性有setter。
在JS服务器端,您可以访问整个Java对象,只需确保您转换为正确的原语,以便您的数据可用。
请确保granite.resource.getParent()返回一个Resource或Node类型的对象,以便您可以访问其路径属性,您尝试了: 'var parentPath = currentNode.getParent()。getPath();' http://docs.adobe.com/docs/en/aem/6-0/develop/sightly/global-objects.html – Bambara
hi @Bambara,currentNode.getParent()。getPath();没有工作,但是currentNode.getParent()。path;按预期工作,我能够生成我需要的结构。你知道我在哪里可以找到每个对象可用的所有属性的文档?您提供的链接确实覆盖了通用对象,但没有提供更多有关它们的详细信息。 –