在自定义部分树中获取父节点

时间:2015-04-01 08:13:13

标签: javascript c# umbraco7

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

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

现在,在使用丹麦的第2项时,我想获得根节点(丹麦)的节点ID,以便我知道我在哪个国家/地区工作。

是否有任何JavaScript API可以回溯到节点级别,并获得最大的扩展?

提前致谢。 纳斯

2 个答案:

答案 0 :(得分:1)

我所做的是使用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”);

答案 1 :(得分:-1)

最简单的方法是使用Razor:

var parentNode = CurrentPage.AncestorOrSelf(1);

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

int id = parentNode.Id;