2016-06-30 4 views
1

Я использую AEM 6.1 и вам нужно динамически заполнять список фильтров на основе списка доступных тэгов. Теги теги вложены так, что есть тег региона, затем вложенные внутри него теги страны, а затем теги городов, вложенные в их страны. Мне нужно получить регион и все его дочерние элементы, я попытался использовать вызов ajax, чтобы вернуть их, но он только возвращает мне узел верхнего уровня и ни одного из этих детей. По-видимому, не так много информации о взаимодействии API-интерфейса JS с диспетчером тегов. Очень благодарен за любую информацию или ссылки, которые могут указать мне в правильном направлении.Получить список тегов с Javascript Использовать API

ответ

1

TagManager класса неявный объект не доступен в Sightly Global objects list

Вы должны были бы получить экземпляр TagManager используя adaptTo и других глобальных доступных объекты

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

Почему вам действительно нужно использовать JS использовать API ? API-интерфейсы JS используются на стороне сервера, а не на стороне клиента, даже если они Javascript.

Возможно, вам будет удобно выполнять это через API-интерфейс Java. вам просто нужно получить путь к тегу и адаптировать его к тегу. Проверьте образец ниже.

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 вы можете написать Java код внутри использования JS API. Проверка Blog