ng-repeat支持自我递归吗?

6
假设我有这样一个json: { "data": { "data": { "data": { "set": "1" } } } } 我想使用ng-repeat循环遍历这个json,但我希望以动态方式循环遍历它,我不知道会有多少个数据对象,有时可能是3个,有时可能是5、6、7等。
如何使用ng-repeat循环遍历这个json,而不必写出与数据对象数量相同的ng-repeat?
在javascript中,我只需要编写这样的代码: function loop(data) { if (data.data) { loop(data.data) } }
1个回答

6

使用相同的函数并从ng-repeat中调用它。

 <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
谢谢@Michael,那个很好用!还有一个问题,如果我有这个json结构:{ "data": { "data": { "data": { "set": "1" }, "set": 4 }, "set": 3 }, "set": "2" }如何处理上面例子中的所有set? - mmmtoasted
这里有一个示例,使用更新后的JSON结构,修改标记以包含嵌套的ng-repeat和getValue函数的更改。http://www.codepen.io/mkl/pen/ZOBxNW - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接