Angular确实在其HTML指令中使用数字为for循环提供了一些支持:
<div data-ng-repeat="i in [1,2,3,4,5]"> do something </div>
但是,如果您的范围变量包含具有动态数字的范围,则您每次都需要创建一个空数组。
在控制器中
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>
我稍微调整了这个答案,想到了这个小提琴。
过滤器定义为:
var myApp = angular.module('myApp', []); myApp.filter('range', function() { return function(input, total) { total = parseInt(total); for (var i=0; i<total; i++) { input.push(i); } return input; }; });
重复使用如下:
<div ng-repeat="n in [] | range:100"> do something </div>