我有一个组件,我可以在其中获得有关其父资源的一些基本信息。
var parent = granite.resource.getParent();
我现在正在尝试在我的组件附带的JavaScript中获取属性“path”(parent.path),但是数据在脚本内部不可用,但在HTML中呈现组件属性“path”可用
是否有人可以了解为什么HTML中可以使用JavaScript而不是JavaScript?
答案 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对象,只需确保转换为正确的原语,以便您的数据可用。