2016-06-21 63 views
6

假设我有一个这样的JSON: { "data": { "data": { "data": { "set": "1" } } } } ng-repeat支持递归吗?

我想通过这个JSON使用NG-重复循环,但是我想遍历它动态的,我不知道有多少数据对象我都会有,有时可能是3,有时可能是5,6,7等。

如何通过ng-repeat循环遍历数据,而无需像有数据对象那样多次重复写入ng-repeat。

在javascript中我只是写这样的事: function loop(data) { if (data.data) { loop(data.data) } }

回答

6

使用您将使用从调用它同样功能的NG-重复

<ul> 
    <li ng-repeat="v in array"> 
     {{getValue(v)}} 
    </li> 
    </ul> 

,并在像这样的控制器功能:

$scope.getValue = function(item){ 
    if(item.data){ 
    return $scope.getValue(item.data); 
    }else{ 
    return item.set; 
    } 
}; 

这里是工作示例的链接http://codepen.io/mkl/pen/dXOOVo

+1

谢谢@迈克尔,这很好! 另外一个问题,虽然,如果我有这个JSON结构: ' { “数据”:{ “数据”:{ “数据”:{ “设置”: “1” }, “组“:4 }, ”组“:3 }, ”设置“: ”2“ } ' 如何可以处理所有从上面的例子中的集? – mmmtoasted

+0

以下是更新后的json结构示例,修改标记以包含嵌套的ng-repeat和getValue函数的更改。 http://www.codepen.io/mkl/pen/ZOBxNW – Michael

+0

谢谢,我的工作与你的建议 – mmmtoasted