我需要这样做:
<str name="aux_identifiers">1 2 3 4</str>
但是我不确定如何跟踪兄弟姐妹的两个循环。我可以轻松地做到这一点:
<tbody>
<tr class=“object.sibling[0]”>
<tr class=“object.sibling[1]”>
<tr class=“object.sibling[2]”>
<tr class=“object.sibling[2].child”>
<tr class=“object.sibling[2].child”>
<tr class=“object.sibling[3]”>
<tr class=“object.sibling[4]”>
然后行无序。
我找到了一个似乎可以使用ng-repeat-start和ng-repeat-end工作的解决方案,它可以直观地实现我想要的东西但是当用户结束hg-repeat启动循环所需的额外空行会使表格变得混乱复制粘贴。
<tbody>
<tr class=“object.sibling[0]”>
<tr class=“object.sibling[1]”>
<tr class=“object.sibling[2]”>
<tr class=“object.sibling[3]”>
<tr class=“object.sibling[4]”>
<tr class=“object.sibling[2].child”>
<tr class=“object.sibling[2].child”>
问题在于,尽管他们可能代表兄弟姐妹的孩子,但他们都必须处于同一水平,就像所有兄弟姐妹一样。我无法弄清楚如何用角度1.2.15做到这一点。如何运行两个跟踪彼此不嵌套的循环?
答案 0 :(得分:1)
<tr ng-repeat-start="sibling in siblings"></tr>
<tr ng-repeat-end ng-repeat="child in sibling.children"></tr>
这个想法是为每个兄弟姐妹重复两行,但每个兄弟姐妹的第二行实际上是为所有兄弟姐妹重复的。因此,在实践中,如果兄弟姐妹实际上有孩子,第二行将只显示(并重复)。
以下是一个完整的例子:
var app = angular.module('app', []);
app.controller('MainCtrl', function($scope) {
$scope.siblings = [
{
children: [
{}, {}, {}
]
},
{},
{
children: [
{}, {}
]
}
];
});
&#13;
<div ng-app="app">
<table ng-controller="MainCtrl">
<tr ng-repeat-start="sibling in siblings">
<td>Sibling {{$index}}</td>
</tr>
<tr ng-repeat-end ng-repeat="child in sibling.children">
<td>Sibling child {{$index}}</td>
</tr>
</table>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular.min.js"></script>
&#13;
注意没有额外的<tr>
元素。