1

我正在使用 AEM 6.1,需要根据可用标签列表动态填充过滤器列表。标签是嵌套的,因此有一个区域标签,然后是国家标签嵌套在其中,然后城市标签嵌套在他们的国家中。我需要检索该区域及其所有子节点,我尝试使用 ajax 调用来返回它们,但它似乎只返回了顶级节点,没有任何子节点。似乎没有太多关于 JS Use API 与跟踪代码管理器交互的信息。非常感谢任何可以为我指明正确方向的信息或链接。

4

2 回答 2

1

TagManager类隐式对象在Sightly Global 对象列表中不可用

您需要获取TagManagerusingadaptTo和其他全局可用对象的实例

  var resourceResolver = resource.getResourceResolver();
  var tagManager = resourceResolver.adaptTo(Packages.com.day.cq.tagging.TagManager);
于 2016-07-01T06:08:17.420 回答
0

为什么你真的需要使用 JS 使用 API?JS 使用 API 位于服务器端而不是客户端,即使它们是 Javascript。

我想你可能会很乐意通过 Java 使用 API 来做这件事。您只需要获取标记的路径并将其调整为标记即可。检查下面的示例。

Resource tagResource = getResourceResolver().getResource(tagPath);
    if (tagResource != null) {
        final Iterable<Resource> children = tagResource.getChildren();
        final Iterator<Resource> itr = children.iterator();
        while (itr.hasNext()) {
            final Resource item = itr.next();
            final Tag tag = item.adaptTo(Tag.class);
            if (tag != null) {
                //Put in map or list to be returned to sightly html.
            }

        }
    }    

顺便说一句,您可以在 JS 使用 API 中编写 Java 代码。检查博客

于 2016-07-02T00:44:13.847 回答