Treeview喜欢表示

时间:2013-12-04 08:34:45

标签: javascript angularjs

让我们说使用以下数据我想创建一个类似树视图的表示。

var demoData = [
                {"name": "person1", "parent": ""},
                {"name": "person2", "parent": "person1"},
                {"name": "person3", "parent": "person1"},
                {"name": "person4", "parent": "person2"},
                {"name": "person5", "parent": "person3"}
                ];

输出应该是这样的。

person1
|--person2
|  |--person4
|--person3
   |--person5

如何使用AngularJS执行此操作。我知道如何做到这一点,让我们在C#中使用递归函数,但无法理解如何在AngularJS中执行此操作。

我已经查看了关于SO的其他问题,但是那里的数据以不同的方式格式化,以便子实体直接在父实体中。

1 个答案:

答案 0 :(得分:0)

通常(如在C#中),您可以使用ng-include来实现递归调用。

一个节点为每个孩子调用ng-include="'tree_item_renderer'

类似的东西:

<script type="text/ng-template"  id="tree_item_renderer">
          <span>
            {{showNode(data)}}
          </span>
        <ul class="some" ng-show="data.show">       
           <li ng-repeat="data in data.nodes"
               ng-include="'tree_item_renderer'" tree-node></li>
        </ul>
</script>

根调用:

     <ul>
        <li ng-repeat="data in displayTree"
            ng-include="'tree_item_renderer'"></li>
      </ul>

您可以在 Plunker

中找到基本演示

enter image description here