我在Umbraco 7的自定义部分中有一个多级树,根节点始终是国家/地区。
现在,在使用丹麦的第2项时,我想获得根节点(丹麦)的节点ID,以便我知道我在哪个国家/地区工作。
是否有任何JavaScript API可以回溯到节点级别,并获得最大的扩展?
提前致谢。 纳斯
答案 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;