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>
我稍微调整了这个答案并想出了jsfiddle。
过滤器定义为:
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>