我在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;