我正在使用 AEM 6.1,需要根据可用标签列表动态填充过滤器列表。标签是嵌套的,因此有一个区域标签,然后是国家标签嵌套在其中,然后城市标签嵌套在他们的国家中。我需要检索该区域及其所有子节点,我尝试使用 ajax 调用来返回它们,但它似乎只返回了顶级节点,没有任何子节点。似乎没有太多关于 JS Use API 与跟踪代码管理器交互的信息。非常感谢任何可以为我指明正确方向的信息或链接。
问问题
1987 次
2 回答
1
TagManager
类隐式对象在Sightly Global 对象列表中不可用
您需要获取TagManager
usingadaptTo
和其他全局可用对象的实例
var resourceResolver = resource.getResourceResolver();
var tagManager = resourceResolver.adaptTo(Packages.com.day.cq.tagging.TagManager);
于 2016-07-01T06:08:17.420 回答
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 代码。检查博客
于 2016-07-02T00:44:13.847 回答