迭代ng-在AngularJs中只重复X次

如何在JavaScript中使用ng-repeat?

例:

<div ng-repeat="4">Text</div> 

我想重复ng-repeat 4次,但是我怎么做呢?

Angular带有一个limitTo:限制filter,它支持限制前x项和后x项:

 <div ng-repeat="item in items|limitTo:4">{{item}}</div> 

这是我能想到的最简单的解决方法。

 <span ng-repeat="n in [].constructor(5) track by $index"> {{$index}} </span> 

这是一个Plunker的例子。

你可以在javascript数组对象中使用slice方法

 <div ng-repeat="item in items.slice(0, 4)">{{item}}</div> 

简短甜美

在html中:

 <div ng-repeat="t in getTimes(4)">text</div> 

并在控制器中:

 $scope.getTimes=function(n){ return new Array(n); }; 

http://plnkr.co/edit/j5kNLY4Xr43CzcjM1gkj

编辑:

与angularjs> 1.2.x

 <div ng-repeat="t in getTimes(4) track by $index">TEXT</div> 

由@mpm给出的答案是行不通的,它给出了错误

不允许在中继器中复制。 使用“追踪”expression式来指定唯一的键。 中继器:{0},重复键:{1}

为了避免这一点

ng-repeat =“getTimes(4)”

使用

跟踪$索引

喜欢这个

<div ng-repeat =“t in getTimes(4)track by $ index”> TEXT </ div>

要重复7次,请尝试使用长度= 7的数组,然后通过 $ index进行跟踪

 <span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span> 

b=[]创build一个空的数组«B»,
.length=7将其大小设置为“7”,
&&b让新的arrays«B»可用于重复,
track by $index其中«$ index»是迭代的位置。
ng-bind="$index + 1"从1开始显示。

重复X次:
X代替7

这里的所有答案似乎都假定项目是一个数组。 但是,在AngularJS中,这也可能是一个对象。 在这种情况下,既不使用limitTo也不使用array.slice进行过滤。 作为一种可能的解决scheme,如果您不介意丢失对象键,则可以将对象转换为数组。 下面是一个filter的例子来做到这一点:

 myFilter.filter('obj2arr', function() { return function(obj) { if (typeof obj === 'object') { var arr = [], i = 0, key; for( key in obj ) { arr[i] = obj[key]; i++; } return arr; } else { return obj; } }; }); 

一旦它是一个数组,使用slice或limitTo,如其他答案中所述。