我知道我可以使用ng-repeat
遍历集合。我如何遍历一个范围。例如,像:如何在AngularJS中重复元素?
<div class='aoeu' ng-repeat='count in range(1,5)'>
<div id='{{count}}'></div>
</div>
我知道我可以使用ng-repeat
遍历集合。我如何遍历一个范围。例如,像:如何在AngularJS中重复元素?
<div class='aoeu' ng-repeat='count in range(1,5)'>
<div id='{{count}}'></div>
</div>
有在Javascript中没有范围()函数,但是你可以创建一个返回值的数组适合自己需要的功能,或使用JS库需要的效果。我会用underscore.js,很干脆:
<div class='aoeu' ng-repeat='count in _.range(1,5)'>
<div id='{{count}}'></div>
</div>
当然,你能在你的角度应用使用下划线(在指令,并且这样的),你需要把它列入你的范围。在你的项目中包含underscore.js,并在你的主控制器中执行$rootScope._ = _
这样,任何角度控制器或指令都能识别$ scope._(引用下划线库),上面的代码片段就可以工作! (如果你所需要的只是创建任意范围,你可以自己制作范围函数 - 通过'make'我的意思是复制任何可用的例子。Here's one)
下划线似乎是最表情丰富,但你可能想看看这个答案:AngularJS ng-options create range
它使用的过滤器来创建阵列。这里是我的版本
var App = angular.module('app', []);
App.filter('range', function() {
return function(arr, lower, upper) {
for (var i = lower; i <= upper; i++){
arr.push(i);
}
return arr;
};
});
,你会使用这样的:
<li ng-repeat="n in [] | range:5:10"> {{n}} </li>
而且的jsfiddle http://jsfiddle.net/jaimem/hKvNc/4/
PD:如果你喜欢parseInt
到字符串转换为整数,不要忘记通过radix
。在解析min
和max
时,我链接的答案缺失。
很好的回答......然而,并不是大多数功能范围包括其上界的?可能应该使用'<='另外,在'for'中有一些多余的'+'符号。 –
“+”运算符将字符串强制转换为整数,但似乎没有必要,因为这些值已经是整数。 – jaime
我想到之后,我想到了。然后我意识到:“等等,为什么有人会进入'范围:5:10abc'? –