2015-04-01 34 views
0

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

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

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

是否有任何JavaScript API递归回节点级别,并获得最顶级的扩展?

在此先感谢。 乔纳斯

回答

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”);

0

这样做将与剃刀最简单的方法:

var parentNode = CurrentPage.AncestorOrSelf(1); 

这会给你当前页面的根节点,您可以根据需要访问根结点的属性:

int id = parentNode.Id; 
+0

由于我在我的后端部分的角度控制器工作,剃刀是可悲的不是一个选项。因此,我需要JS方式:)但谢谢。 – 2015-04-01 08:37:51