具有数和范围的循环的AngularJS在其HTML指令中使用数字为for循环提供了一些支持:<div data-ng-repeat="i in [1,2,3,4,5]">
do something</div>但是,如果Scope变量包含一个具有动态数字的范围,那么每次都需要创建一个空数组。在控制器中var range = [];for(var i=0;i<total;i++) {
range.push(i);}$scope.range = range;在HTML中<div data-ng-repeat="i in range">
do something</div>这是可行的,但这是不必要的,因为我们将不会在循环中使用范围数组。有没有人知道设置最小/最大值的范围或规则?类似于:<div data-ng-repeat="i in 1 .. 100">
do something</div>
3 回答

慕莱坞森
TA贡献1810条经验 获得超4个赞

HUX布斯
TA贡献1876条经验 获得超6个赞
HTML:
<ul> <li ng-repeat="n in range(5,15)">Number {{n}}</li></ul>
控制器:
$scope.range = function(min, max, step) { step = step || 1; var input = []; for (var i = min; i <= max; i += step) { input.push(i); } return input;};

慕雪6442864
TA贡献1812条经验 获得超5个赞
myApp.filter('makeRange', function() { return function(input) { var lowBound, highBound; switch (input.length) { case 1: lowBound = 0; highBound = parseInt(input[0]) - 1; break; case 2: lowBound = parseInt(input[0]); highBound = parseInt(input[1]); break; default: return input; } var result = []; for (var i = lowBound; i <= highBound; i++) result.push(i); return result; }; });
<div ng-repeat="n in [10] | makeRange">Do something 0..9: {{n}}</div>
<div ng-repeat="n in [20, 29] | makeRange">Do something 20..29: {{n}}</div>
添加回答
举报
0/150
提交
取消