使用Javascript使用API获取标记列表

使用Javascript使用API获取标记列表,javascript,aem,aem-6,Javascript,Aem,Aem 6,我正在使用AEM 6.1,需要根据可用标记列表动态填充过滤器列表。这些标记是嵌套的,因此有一个区域标记,然后是嵌套在其中的国家标记,然后是嵌套在其国家/地区中的城市标记。我需要检索区域及其所有子节点,我尝试使用ajax调用返回它们,但它似乎只返回顶级节点,而没有返回任何子节点。关于JSUSEAPI与标记管理器的交互,似乎没有太多信息。非常感谢您提供给我正确方向的信息或链接。TagManager类隐式对象在中不可用 您需要使用adapto和其他全局可用对象获取TagManager的实例 var

我正在使用AEM 6.1,需要根据可用标记列表动态填充过滤器列表。这些标记是嵌套的,因此有一个区域标记,然后是嵌套在其中的国家标记,然后是嵌套在其国家/地区中的城市标记。我需要检索区域及其所有子节点,我尝试使用ajax调用返回它们,但它似乎只返回顶级节点,而没有返回任何子节点。关于JSUSEAPI与标记管理器的交互,似乎没有太多信息。非常感谢您提供给我正确方向的信息或链接。

TagManager
类隐式对象在中不可用

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

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

为什么你真的需要使用JSUSEAPI?JSUSEAPI在服务器端而不是客户端,即使它们是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.
            }

        }
    }    
Resource tagResource=getresourcesolver().getResource(tagPath);
if(tagResource!=null){
final Iterable children=tagResource.getChildren();
final迭代器itr=children.Iterator();
while(itr.hasNext()){
最终资源项=itr.next();
最终标签=item.adapto(Tag.class);
如果(标记!=null){
//放入地图或列表以返回到html。
}
}
}    
顺便说一句,您可以在JSUSEAPI中编写Java代码。检查