AEM获取子节点内容

时间:2015-02-22 22:16:01

标签: javascript aem

如何专门使用JavaScript获取子节点内容?

我可以使用以下方法获取父节点信息:

granite.resource.properties

但是我需要访问子节点

-parent

- 孩子(命名图片)

有一些方法可以使用Java访问子节点,但我正在构建一个仅限JavaScript的解决方案:

下面的Java示例

for (Node n1 : JcrUtils.getChildNodes(node)){
  String imagePath = n1.getPath().toString();
  Resource imageResource = resourceResolver.getResource(imagePath);
  Node imageNode = imageResource.adaptTo(Node.class);
  ValueMap imageNodeProps = imageResource.adaptTo(ValueMap.class);
  String imageName = null;
  imageName= imageNodeProps.get("fileReference", "None");

3 个答案:

答案 0 :(得分:0)

我不知道如何获取子节点属性,但也许我有类似的问题因为我想在组件中使用图像。我试图将图像设置为子节点,但由于我不知道如何访问它,因此无效。 我最终得到的是使用css加载图像。

答案 1 :(得分:0)

使用AEM附带的图像基础组件有助于获得有关如何访问数据的指导。对我来说,只需要进行一些修改并使其按预期工作。您可以在此处找到AEM图像组件:

/库/ WCM /基础/组件/图像/

浏览提供的不同文件以获取更多信息。

答案 2 :(得分:0)

您可以在代码之间使用console.log()并检查error.log

中的值
function(nodeInfo) {
    /* from current node, get the children nodes */
    nodeInfo.childrenNodes = currentNode.getNodes();
    if(typeof nodeInfo.childrenNodes != "undefined") {

        for(var childrenNode in nodeInfo.childrenNodes) {
             /*iterate through children nodes, get specific 'child' node */
             if(childrenNode === "specificChildNode") {
                 /* if required property is present, get that property */
                 if(nodeInfo.childrenNodes[childrenNode].hasProperty("requiredProperty")){
                    nodeInfo.reqProp = nodeInfo.childrenNodes[childrenNode].getProperty("requiredProperty");
                 } 
             }
         }
    }
    return nodeInfo;
};