具有数和范围的循环的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
提交
取消
