Javascript 角度指令中的无限嵌套ng repeat
我有一个包含无限嵌套数据的对象,如以下示例:Javascript 角度指令中的无限嵌套ng repeat,javascript,angularjs,Javascript,Angularjs,我有一个包含无限嵌套数据的对象,如以下示例: [ { name: "Foo", value: "Bar", sub: [ { name: "ABC", value: "LLL", sub: [ ... ] }, { ... } ] }, { n
[
{
name: "Foo",
value: "Bar",
sub: [
{
name: "ABC",
value: "LLL",
sub: [
...
]
},
{
...
}
]
},
{
name: "Oof",
value: "Rab"
sub: [
...
]
}
]
每个元素都可以包含一个sub
值,该值将包含一个或多个具有相同结构的元素(name
,value
,sub
,如果有更多子元素)
现在,我知道如何执行ng repeat
,但是使用单个ng repeat
,我将只获取第一级的元素。如果我在第一层做了第二次ng repeat
,我只会得到第二层的物品,等等
因为我不知道会有多少个级别,我不能只在彼此内部嵌套几个
ng repeat
。这就是为什么我在寻找一种递归循环整个数据数组的方法,并表示Angular指令内部的所有项(即在HTML代码中使用Angular的指令/属性)。使用Angular(1.3.x)可以吗?是的,可以使用内联模板
例如:
<script type="text/ng-template" id="namVal">
{{ item.name}}
<ul ng-if="item.sub">
<li ng-repeat="item in item.sub" ng-include="'namVal'"></li>
</ul>
</script>
{{item.name}
在html中
<ul>
<li ng-repeat="item in items" ng-include="'namVal'"></li>
</ul>
通过@alexandernst使用Plunkr示例进行更新
谢谢!我现在就试试,我想我会在几个小时后接受答案;)好的,我在某个点得到一个无限循环。检查此项:在第26行中,如果我将
sub.sub
更改为item.sub
,它将冻结。我做错了什么?