[英]Angular dynamic nested ng-repeat generation
我正在尋找一種基於某些數據生成嵌套菜單的方法,我想解決的問題是:
我不知道每次有多少子級別的數據(它是動態的),我想基於ng-repeats的數據生成菜單。 我想要一種生成菜單的方法,而無需對重復級別進行硬編碼。 因此,如果有2或10,它將填補自己。
所以現在我很難對重復級別進行編碼,如下所示:
<ul class="outerMenu" >
<li ng-repeat="level in globalMenu" ng-click="showSubs =! showSubs" >{{level.name}} {{level.subs.length}}
<ul ng-if="level.subs.length > 0" ng-show="showSubs">
<li ng-repeat="sub in level.subs" ng-click="$event.stopPropagation()">{{sub.name}}
</li>
</ul>
</li>
</ul>
所以我想知道是否有一種方法可以根據數據生成嵌套重復(這將繼續在其自身內部)。 因此,JSON的1級下降看起來像這樣。
$scope.globalMenu = [
{
'name' : 'level 1',
'subs' : [
{
'name' : 'level 1-1'
},
{
'name' : 'level 1-2'
},
{
'name' : 'level 1-3'
},
{
'name' : 'level 1-4'
}
]
},
{
'name' : 'level 2'
},
{
'name' : 'level 3'
},
{
'name' : 'level 4'
},
{
'name' : 'level 5'
}
];
所以我想知道這些潛艇是否在他們內部有另一個子級別(可能再次稱為潛艇,如果我可以有角度生成一個新的嵌套重復,而不是根據當前項目是否有任何硬編碼水平ng-show sub - 因為我必須假設可能級別的最大數量並為此構建,我不會100%知道它將是什么。
謝謝閱讀!
您可以為每個新的子級別創建模板並包含它。
<script type="text/ng-template" id="menu_sublevel.html">
{{ sub.name }}
<ul ng-if="item.subs">
<li ng-repeat="item in item.subs" ng-click="$event.stopPropagation()">
{{sub.name}}
</li>
</ul>
</script>
然后在您的視圖中定義頂級:
<ul class="outerMenu">
<li ng-repeat="item in globalMenu" ng-click="$event.stopPropagation()"
ng-include="'menu_sublevel.html'"></li>
</ul>
你可以使用angular-ui-tree
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.