小编典典

带有数字和范围的 AngularJS For 循环

all

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>

阅读 61

收藏
2022-05-19

共1个答案

小编典典

我稍微调整了这个答案并想出了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>
2022-05-19