我有一个包含所有父节点和子节点的JSON字符串。我需要将父节点及其相应的子节点渲染为导航栏中的列表。
这是我的json:
[
{node_ID='2', name='Child3', parent='3', role ='leafNode'},
{node_ID='4', name='Child4', parent='3', role ='leafNode'},
{node_ID='3', name='Child2', parent='1', role ='Node'},
{node_ID='1', name='Node1', parent='0', role ='rootNode'},
...]
迭代后,我的列表应显示为:
> Node1
>Child2
>Child3
>Child4
有人可以使用angular.forEach函数遍历JSIN数组并根据节点ID和Parent-ID对节点进行排序吗?
答案 0 :(得分:2)
这会将您的数据映射到适合传递给递归树指令的嵌套数组。在网络搜索中找到其中一个并不难...有很多很多的例子和模块
var tmp ={}, res=[];
data.forEach(function(item){
item.children =[];
tmp[item.node_ID]=item;
});
data.forEach(function(item){
if(+item.parent !==0){
tmp[item.parent].children.push(item);
}else{
res.push(item);
}
});
delete tmp;
$scope.tree = res;