2016-05-06 122 views
0

目前,我正在学习angularjs 1.5.0 我正在做一个小样本具有复杂JSON对象,像这样:NG重复递归属性对象

{ 
"Families":[ 
    { 
     "Name": "A", 
     "Age": 1, 
     "Children": [ 
      { 
       "Name": "B", 
       "Age": 2, 
       "Children":[ 
        { 
         "Name": "C", 
         "Age": 3 
        }, 
        { 
         "Name": "D", 
         "Age": 4 
        } 
       ] 
      } 
     ] 
    }, 
    { 
     "Name": "X", 
     "Age": 5, 
     "Children":[ 
      { 
       "Name": "Y", 
       "Age": 2 
      }, 
      { 
       "Name": "Z", 
       "Age": 4 
      } 
     ] 
    } 
] 

}

正如你看,家庭包含很多成员,每个成员都有姓名,年龄和孩子。我想列出这个家族树,但有一件事对我来说很难:我不知道一个成员有多少个孩子,因此我不知道如何使用ng-repeat将它们列出。

任何人都可以帮助我吗? 非常感谢,

+2

的http://宾·科士打。 io/blog/angularjs-recursive-templates –

+0

这里从Jordan.JD的例子中修改一个小提琴来显示另一层类别以及它如何递归添加它:[http://jsfiddle.net/Lgosoxks/](http://jsfiddle.net/Lgosoxks/) – dylpickle

回答

6

对于显示递归json数据数组,请在视图中使用递归模板。鉴于这样的 创建像下面

<script type="text/ng-template" id="familyTree"> 
     {{ family .name}} 
    <ul ng-if="family.children"> 
     <li ng-repeat="family in family.children" ng-include="'familyTree'">   
     </li> 
    </ul> 
    </script> 

和使用NG重复模板渲染视图

<ul> 
    <li ng-repeat="family in families" ng-include="'familyTree'"></li> 
    </ul> 

样品fiddle

details

+1

非常感谢:D – Redplane