在自定义截面树中获取父节点



我在Umbraco 7的自定义部分中有一个多级树,其中的根节点始终是国家。

  • 丹麦
    • 项目1
    • 项目2
  • Sweeden
    • 项目1
    • 项目2
  • 挪威
    • 项目1
    • 项目2

现在,当使用丹麦的项目2时,我想获得根节点(丹麦)的节点ID,这样我就知道我使用的是哪个国家ID。

是否有任何JavaScript API可以在节点级别上递归,并得到最高级的扩展?

提前谢谢。乔纳斯

我所做的是使用editorState
(我正在运行Umbraco 7.5.7)

angular.module("umbraco").controller("Client.Controller",
  function ($scope, editorState) {
    // Get the rootNode out of the path.
    var rootNode = editorState.current.path.split(",")[1];
});

由于路径包含当前节点所在的整个结构,因此第二个第一节点将是根节点。


另一种解决方案可能是:
(我自己还没有测试过)
https://our.umbraco.org/forum/developers/extending-umbraco/73796-how-to-get-the-parentid-of-the-current-node-in-custom-tree-using-angularjs

简单地说:

将appState和treeService注入角度控制器

这将获得当前树的最顶端节点:
var rootNode=appState.getTreeState("currentRootNode");

这将获得自定义树中当前选定的节点
var selectedNode=appState.getTreeState("selectedNode");

最简单的方法是使用Razor:

var parentNode = CurrentPage.AncestorOrSelf(1);

这将为您提供当前页面的根节点,您可以根据需要访问根节点的属性:

int id = parentNode.Id;

相关内容

  • 没有找到相关文章

最新更新