1

所以看起来很适合获取属性,但我想努力获取我定义的其他子节点的属性。

这是我的 PictureFill 组件结构的开始:

{
  jcr:primaryType: "nt:unstructured",
  jcr:createdBy: "admin",
  fileReference: "/content/dam/myapp/dev/hero-billboard.jpg",
  jcr:lastModifiedBy: "admin",
  jcr:created: "Wed Oct 07 2015 03:38:00 GMT+0000",
  jcr:lastModified: "Wed Oct 07 2015 16:54:12 GMT+0000",
  sling:resourceType: "myapp/components/content/image",
  cq:responsive: {
    jcr:primaryType: "nt:unstructured"
  },
    mobile: {
      jcr:primaryType: "nt:unstructured",
      path: "/content/dam/myapp/dev-testing/placeholder/FPO-hero-sm.jpg"
    },
    tablet: {
      jcr:primaryType: "nt:unstructured"
    },
    desktop: {
      jcr:primaryType: "nt:unstructured"
    },
    extralg: {
      jcr:primaryType: "nt:unstructured"
    }
}

所以我卡住的部分是我将如何在移动、平板电脑、桌面和 extralg 节点上设置属性。

我想重用从 utils/Image.js 获得的尽可能多的 OOTB 功能,而不是重新构建它,这就是我走 Java 路线的原因。

4

2 回答 2

2

为什么不使用 WCMUse Java 类或 JS 使用?

您正在寻找的是您想要实现的自定义,因此您应该拥有自己的控制器并访问子节点的属性,Sightly 是一种模板语言,如果您需要特定的东西创建一个 Use Java,它是故意变得简单的或 JavaScript 对象并使用 Sightly 访问它。

于 2015-10-08T17:25:06.410 回答
0

方法一:HTL/Sightly

使用您的数据结构question

<sly data-sly-list.device="${resource.listChildren}">
  ${device.name} // this should output 'mobile' or 'desktop', etc.
  ${device.path} // this should output the paths
</sly>

方法二:Javascript USE API

navbarnavitem这是我要访问的节点( ),item0并且item1

在此处输入图像描述

这是getLinks帮助我做到这一点的方法(每个项目都有两个属性 -hreflinkText

在此处输入图像描述

祝你好运...

于 2018-08-10T06:21:33.753 回答