让我们说使用以下数据我想创建一个类似树视图的表示。
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的其他问题,但是那里的数据以不同的方式格式化,以便子实体直接在父实体中。
答案 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
中找到基本演示