有没有一种方法可以ng-repeat定义次数,而不必总是遍历数组?
ng-repeat
例如,在下面,我希望列表项显示5次,并假设$scope.number等于5,并增加数字,因此每个列表项都按1、2、3、4、5递增
$scope.number
所需结果:
<ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> <li><span>5</span></li> </ul>
更新
较新版本的AngularJS(> = 1.3.0)允许您仅使用变量(无需功能)来执行此操作:
<li ng-repeat="x in [].constructor(number) track by $index"> <span>{{ $index+1 }}</span> </li> $scope.number = 5;
在首次提出问题时这是不可能的。感谢@Nikhil Nambiar从下面的回答中获得此更新
原创
目前,ng-repeat仅接受集合作为参数,但是您可以这样做:
<li ng-repeat="i in getNumber(number)"> <span>{{ $index+1 }}</span> </li>
在控制器中的某个位置:
$scope.number = 5; $scope.getNumber = function(num) { return new Array(num); }
这样一来,您可以随意更改$scope.number为任何数字,并仍然保持所需的绑定。
编辑(1/6/2014) -较新版本的AngularJS(> = 1.1.5)需要track by $index:
track by $index
<li ng-repeat="i in getNumber(number) track by $index"> <span>{{ $index+1 }}</span> </li>