我有一个需要共享的页脚元素。我的计划是在父/主页上设置页脚,但允许子页面覆盖这些属性。
我首先查看当前组件的属性(非常标准),然后获取父页面的路径以查找具有相同名称的组件上的属性。
function getProperty(property, currentPage) {
var val = null,
page = currentPage,
rootPage = page.getAbsoluteParent(2);
var curNode = currentNode.getPath(),
nodeStrIdx = curNode.indexOf("jcr:content"),
nodeStr = curNode.substr(nodeStrIdx + 12); // Remove 'jcr:content/' too
while(val == null) {
// If we've gone higher than the home page, return
if(page.getDepth() < 3) {
break;
}
// Get the same node on this page
var resource = page.getContentResource(nodeStr);
if(resource != null) {
var node = resource.adaptTo(Node.class); // *** This is null ***
// val = node.get(property);
}
// Get the parent page
page = page.getParent();
}
return val;
}
我已经看到您可以将内容资源的类型更改为应该允许我获得相同property
但resource.adaptTo(Node.class)
返回 null 的节点。
如果不清楚,resource
是我要从中提取属性的节点的绝对路径,例如/content/jdf/en/resources/challenge-cards/jcr:content/footer/follow-us