C# AngularJs:ngRepeat以1以外的增量增加
在AngularJs中是否有一种方法可以增加除1以外的增量,例如下面的C#Razor示例:C# AngularJs:ngRepeat以1以外的增量增加,c#,angularjs,razor,C#,Angularjs,Razor,在AngularJs中是否有一种方法可以增加除1以外的增量,例如下面的C#Razor示例: @for(var i = 0; i < list.length; i+=3) { <p>Value: listOfObjects[i].value</p> } (变量i=0;i
@for(var i = 0; i < list.length; i+=3)
{
<p>Value: listOfObjects[i].value</p>
}
(变量i=0;i我假设您想要迭代数组集合,并且需要它的当前索引。在这种情况下,您可以使用内置的
{{$index
ng repeat
,$index
将为您提供元素的当前索引(如果其数组)。您可以使用ng if
条件$index%3==0
控制器
$scope.listOfObjects = [0, 1, 2, 3];
标记
<div ng-repeat="item in listOfObjects" ng-if="$index%3==0">
{{item}}
</div>
{{item}}
不,您不能直接使用,但您可以对此进行一些变通:
<div ng-repeat="item in listOfObjects">
<div ng-if="$index % 3 == 0">
{{item}}
</div>
</div>
{{item}}
您可以使用这种结构:
<div ng-repeat="n in nfg">
<span ng-if="!($index %= 3)">Some text here, each 3rd loop</span>
</div>
这里有一些文本,每个第三个循环
我曾希望你能在ng repeat中使用一个过滤器,但我无法实现这一点。不幸的是,ngRepeat没有这个功能,你可以用ngIf实现,但我个人更喜欢过滤器,因为它们是无状态的 JS
.filter('everyNth',function(){
返回函数(数组元素,n){
var结果=[]
对于(变量i=0;i
HTML
不,你必须迭代一个数组,例如[0,2,4]好问题,不要认为你能用ngRepeat做到这一点。这不是问题的答案,OP希望在ngRepeat中每N个元素迭代一次,而不是增加索引binding@maurycy检查更新,抱歉我错过了那部分:(谢谢提醒
.filter('everyNth', function() {
return function(arrayOfElements, nth) {
var result = []
for (var i = 0; i < arrayOfElements.length; i += nth) {
result.push(arrayOfElements[i])
}
return result
}
})
<div ng-repeat="item in items | everyNth:3">