如何像Javascript中的for一样使用ng-repeat?
例子:
<div ng-repeat="4">Text</div>
我想使用ng-repeat迭代4次,但是怎么做呢?
如何像Javascript中的for一样使用ng-repeat?
例子:
<div ng-repeat="4">Text</div>
我想使用ng-repeat迭代4次,但是怎么做呢?
Angular提供了一个limitTo:limit过滤器,它支持限制前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示例。
Error: [$parse:isecfld]
- Emaborsa<div ng-repeat="item in items.slice(0, 4)">{{item}}</div>
简短而甜美
item in items|limitTo:4
这么简单。 - jofftiquez<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>
t在[1、2、3、4]
或t在'aaaa'
中。 - Valentyn Shybanov[1,2,3,4]
这样写......多么令人沮丧的解决方案。 - Matej@mpm提供的答案无效,它会给出以下错误:
重复器中不允许重复。使用“track by”表达式来指定唯一键。重复器:{0},重复键:{1}
为了避免这种情况,您需要在
ng-repeat="t in getTimes(4)"
之后添加
track by $index
像这样:
<div ng-repeat="t in getTimes(4) track by $index">文本</div>
为了重复7次,请尝试使用长度为7的数组,然后通过$index来跟踪它:
<span ng-repeat="a in (((b=[]).length=7)&&b) track by $index" ng-bind="$index + 1 + ', '"></span>
b=[]
创建一个空数组«b»,
.length=7
将其大小设置为«7»,
&&b
使新数组«b»可供ng-repeat使用,
track by $index
其中«$index»是迭代的位置。
ng-bind="$index + 1"
显示从1开始。
要重复X次:
只需将7替换为X。
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。
items
是什么? - T JlimitTo
的筛选器。我的问题是items
是什么,因为 OP 的问题在于他没有一个items
数组可以提供给ng-repeat
(或任何筛选器),只有一个整数。 - T J