嵌套ng重复上的Angularjs增量计数器
我有一个想在嵌套ng repeat上维护计数器的情况嵌套ng重复上的Angularjs增量计数器,angularjs,ng-repeat,Angularjs,Ng Repeat,我有一个想在嵌套ng repeat上维护计数器的情况 <ul> <li ng-repeat="some in something"> <span> index {{someCounter}} </span> <ul> <li ng-repeat="chid in some"> <span> index {{someCo
<ul>
<li ng-repeat="some in something">
<span> index {{someCounter}} </span>
<ul>
<li ng-repeat="chid in some">
<span> index {{someCounter}} </span>
</li>
</ul>
</li>
</ul>
<tbody>
<tr ng-repeat="(row, y) in getNumber(h.seats.length, 3) track by $index">
<td>{{row+1}}</td>
<td class="text-primary" ng-class="appliedClass(!t.status)"
ng-repeat="(col, t) in h.seats track by $index"
ng-if="col >= (row)*3 && col < (row+1)*3">
<span ng-show="t.status"> X </span>
<span ng-show="!t.status"> - </span>
</td>
</tr>
</tbody>
-
索引{someCounter}
-
索引{someCounter}
以下哪一项应该输出
- 索引0
- 指标1
- 指标2
- 指标3
<ul>
<li ng-repeat="some in something">
<span> index {{someCounter}} </span>
<ul>
<li ng-repeat="chid in some">
<span> index {{someCounter}} </span>
</li>
</ul>
</li>
</ul>
<tbody>
<tr ng-repeat="(row, y) in getNumber(h.seats.length, 3) track by $index">
<td>{{row+1}}</td>
<td class="text-primary" ng-class="appliedClass(!t.status)"
ng-repeat="(col, t) in h.seats track by $index"
ng-if="col >= (row)*3 && col < (row+1)*3">
<span ng-show="t.status"> X </span>
<span ng-show="!t.status"> - </span>
</td>
</tr>
</tbody>
谢谢据我所知,要做到这一点,没有简单的方法。您需要做的是预处理正在重复的对象,并以循环方式为其分配计数器。我想不出一个单独用HTML实现的方法。此外,我认为这对阵列不起作用,以下是我的尝试: 假设您将在某个点对对象进行排序,以便它们按顺序显示:
$scope.something = [
{one: {ten: 10}, eleven: {nine: 9}, hundred: {blue: 100}},
{one: {ten: 10}, eleven: {nine: 9}, hundred: {blue: 100}},
{one: {ten: 10}, eleven: {nine: 9}, hundred: {blue: 100}},
{one: {ten: 10}, eleven: {nine: 9}, hundred: {blue: 100}},
{one: {ten: 10}, eleven: {nine: 9}, hundred: {blue: 100}},
];
var counter = 0;
angular.forEach($scope.something, function(value, index){
//console.log(value);
value.counter = counter++;
angular.forEach(value, function(subValue, subIndex){
//console.log(subValue);
subValue.counter = counter++;
});
});
console.log($scope.something);
HTML:
-
索引{some.counter}
-
索引{child.counter}
Plunker:在嵌套的ng repeat上维护单独的计数器很容易 您可以使用以下语法在嵌套的ng repeat中获取计数器(col)。尽管仍然需要按$index跟踪,但您不需要在逻辑中使用它,因为您有计数器列
ng-repeat="(col, t) in h.seats track by $index"
我有一个数组,我想把它转换成列大小为4的网格/矩阵。下面的实现对我有效。您可以在嵌套的ng repeat中使用两个计数器:行和列
<ul>
<li ng-repeat="some in something">
<span> index {{someCounter}} </span>
<ul>
<li ng-repeat="chid in some">
<span> index {{someCounter}} </span>
</li>
</ul>
</li>
</ul>
<tbody>
<tr ng-repeat="(row, y) in getNumber(h.seats.length, 3) track by $index">
<td>{{row+1}}</td>
<td class="text-primary" ng-class="appliedClass(!t.status)"
ng-repeat="(col, t) in h.seats track by $index"
ng-if="col >= (row)*3 && col < (row+1)*3">
<span ng-show="t.status"> X </span>
<span ng-show="!t.status"> - </span>
</td>
</tr>
</tbody>
{{row+1}}
X
-
有关计数器工作原理的详细信息,请访问基本上,您需要进行顺序遍历,但使用ng repeat进行预顺序遍历,因此您需要在JS端进行处理。