2016-06-30 34 views
1

我正在使用AEM 6.1,需要根據可用標籤列表動態地填充過濾器列表。這些標籤是嵌套的,以便有一個區域標籤,然後嵌入國家標籤,然後城市標籤嵌套在其國家內。我需要檢索該區域及其所有子項,我試圖使用ajax調用來返回它們,但它似乎只返回頂層節點而不是子節點。似乎沒有關於JS使用API​​與跟蹤代碼管理器交互的很多信息。真的非常感謝任何信息或鏈接,可以指引我正確的方向。使用Javascript獲取標籤列表使用API​​

回答

1

TagManager類隱含對象不在Sightly Global objects list

提供您需要使用adaptTo等全球可用的對象,得到的TagManager實例

var resourceResolver = resource.getResourceResolver(); 
    var tagManager = resourceResolver.adaptTo(Packages.com.day.cq.tagging.TagManager); 
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代碼。檢查Blog

相關問題