在angularJS中从树视图获取叶节点深度

Get leaf node depth from tree view in angularJS

本文关键字:获取 叶节点 深度 视图 angularJS      更新时间:2023-09-26

我有一个树视图Json对象是

{
  "Name": "Root",
  "Id": "-1",
  "ParentId": "null",
  "children": [
    {
      "Name": "Math",
      "Id": "1",
      "ParentId": "-1",
      "children": [
        {
          "Name": "Addition",
          "Id": "3",
          "ParentId": "1",
          "children": [
            {
              "Name": "Two Numbers",
              "Id": "5",
              "ParentId": "3",
              "children": []
            },
            {
              "Name": "Three Numbers",
              "Id": "6",
              "ParentId": "3",
              "children": []
            }
          ]
        },
        {
          "Name": "Substraction",
          "Id": "4",
          "ParentId": "1",
          "children": [
            {
              "Name": "Four Numbers",
              "Id": "7",
              "ParentId": "4",
              "children": []
            },
            {
              "Name": "Five Numbers",
              "Id": "8",
              "ParentId": "4",
              "children": []
            }
          ]
        }
      ]
    },
    {
      "Name": "English",
      "Id": "1",
      "ParentId": "-1",
      "children": []
    }
  ],
  "selected": "selected"
}

如果我选择"Two numbers"叶节点,mytree.currentNode.Name只显示"Two Number",但我想从叶节点的深度显示。"根/数学/加法/两个数字"有什么显示方式吗
请帮我。提前感谢

您所做的设计描述使您很难获得整个深度。

存储分层数据有两种方法。请使用引用或ID。不要混用。

如果您保留ParentId的引用,那么您就可以很容易地沿着整棵树往下走。

如果要使用父ID,则使用ID和对象的字典,而不是嵌套的子ID。通过这种方式,您还可以非常容易(快速)地遍历树