使用angular.forEach

时间:2015-07-24 03:16:38

标签: javascript json angularjs

我有一个包含所有父节点和子节点的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对节点进行排序吗?

1 个答案:

答案 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;

DEMO