如何以ng重复定义的次数而不是在数组上重复?更新 (9/25/2018)原创 (5/29/2013)

有没有办法定义一个次数,而不是总是必须迭代数组?ng-repeat

例如,下面我希望列表项显示 5 次,假设等于 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>

答案 1

更新 (9/25/2018)

较新版本的AngularJS(>= 1.3.0)允许您仅使用一个变量(不需要函数)来执行此操作:

<li ng-repeat="x in [].constructor(number) track by $index">
    <span>{{ $index+1 }}</span>
</li>
$scope.number = 5;

这在首次提出问题时是不可能的。感谢@Nikhil Nambiar在下面对此更新的回答


原创 (5/29/2013)

目前,只接受集合作为参数,但您可以这样做: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

<li ng-repeat="i in getNumber(number) track by $index">
    <span>{{ $index+1 }}</span>
</li>

这是一个使用相同函数的几个列表的小提琴。getNumber


答案 2

你可以这样做:

<div ng-repeat="i in [1, 2, 3, 4]">
  ...
</div>