有没有办法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>
更新(2018 年 9 月 25 日)
较新版本的 AngularJS (>= 1.3.0) 允许您仅使用变量来执行此操作(不需要函数):
<li ng-repeat="x in [].constructor(number) track by $index">
<span>{{ $index+1 }}</span>
</li>
$scope.number = 5;
这在第一次提出问题时是不可能的。感谢@Nikhil Nambiar 在下面对本次更新的回答
原件(2013 年 5 月 29 日)
眼下,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
任意号码,并且仍然保持您正在寻找的绑定。
编辑(2014 年 1 月 6 日)-- 较新版本的 AngularJS (>= 1.1.5) 需要track by $index
:
<li ng-repeat="i in getNumber(number) track by $index">
<span>{{ $index+1 }}</span>
</li>
这是一个小提琴 http://jsfiddle.net/sh0ber/cHQLH/与几个使用相同的列表getNumber
功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)