使用Javascript Use API获取标签列表

时间:2016-06-30 17:58:45

标签: javascript aem aem-6

我正在使用AEM 6.1,需要根据可用的标记列表动态填充过滤器列表。标签是嵌套的,因此有一个区域标签,然后国家标签嵌套在其中,然后城市标签嵌套在其国家/地区内。我需要检索该区域及其所有子项,我尝试使用ajax调用来返回它们,但它似乎只返回顶级节点而没有子节点。关于JS Use API与Tag Manager的交互,似乎没有太多信息。非常感谢能够指引我朝正确方向发展的任何信息或链接。

2 个答案:

答案 0 :(得分:1)

TagManager类隐式对象在Sightly Global objects list

中不可用

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

  var resourceResolver = resource.getResourceResolver();
  var tagManager = resourceResolver.adaptTo(Packages.com.day.cq.tagging.TagManager);

答案 1 :(得分:0)

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

我猜你可能会通过Java use API来做到这一点。你只需要获得标记的路径并使其适应Tag。查看下面的示例。

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.
            }

        }
    }    

BTW你可以在JS use API中编写 Java代码。查看Blog