2016-06-30 13 views
1

Ich benutze AEM 6.1 und muss eine Liste von Filtern dynamisch basierend auf der Liste der Tags, die verfügbar sind. Die Tags sind verschachtelt, so dass ein Regions-Tag, dann Länder-Tags darin verschachtelt und dann City-Tags in ihren Ländern verschachtelt sind. Ich muss die Region und alle ihre Kinder abrufen, ich habe versucht, einen Ajax-Aufruf zu verwenden, um sie zurückzugeben, aber es scheint mir nur den Knoten der obersten Ebene und keines der Kinder zurückzugeben. Es scheint nicht viele Informationen bezüglich der Interaktion der JS Use API mit dem Tag Manager zu geben. Wirklich dankbar für alle Informationen oder Links, die mich in die richtige Richtung weisen können.Get Liste der Tags mit Javascript API verwenden

Antwort

1

TagManager Klasse implizite Objekt ist nicht verfügbar in Sightly Global objects list

Sie würden die Instanz von TagManager mit adaptTo und anderen globalen verfügbaren Objekte

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

erhalten müssen Warum wollen Sie verwenden JS verwenden müssen API wirklich ? Die JS-Benutzungs-APIs sind auf der Serverseite nicht clientseitig, obwohl sie Javascript sind.

Ich denke, Sie könnten es bequem über Java verwenden API verwenden. Sie müssen nur den Pfad zum Tag und passen Sie es an Tag. Überprüfen Sie ein Beispiel unten.

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 können Sie Java-Code in JS Verwendung API schreiben. Überprüfen Sie Blog