小编典典

ng重复定义次数而不是在数组上重复的方法?

javascript

有没有一种方法可以ng-repeat定义次数,而不必总是遍历数组?

例如,在下面,我希望列表项显示5次,并假设$scope.number等于5,并增加数字,因此每个列表项都按1、2、3、4、5递增

所需结果:

<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>

阅读 231

收藏
2020-04-25

共1个答案

小编典典

更新

较新版本的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

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